使用对象 ID - Amazon IoT SiteWise
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅 中国的 Amazon Web Services 服务入门 (PDF)

本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。

使用对象 ID

Amazon IoT SiteWise 定义各种类型的永久对象,例如资产、资产模型、属性和层次结构。所有这些对象都有唯一的标识符,您可以使用这些标识符来检索、更新和删除它们。

Amazon IoT SiteWise 为客户提供了不同的身份创建选项。 Amazon IoT SiteWise 默认情况下,在创建对象时会为您生成一个。用户还可以为您的对象提供他们自己的 ID。

使用对象 UUID

中的每个永久对象都 Amazon IoT SiteWise 有一个用于标识它的 UUID。例如,资产模型具有资产模型 ID,资产具有资产 ID,依此类推。此 ID 是在您创建对象时分配的,并且在对象的生命周期内保持不变。

创建新对象时,默认情况下会为您 Amazon IoT SiteWise 生成一个唯一的 ID。您也可以在创建时以 UUID 格式提供自己的 ID。

注意

UUID 在创建它的 Amazon 区域内必须是全局唯一的,并且对于相同的对象类型。 Amazon IoT SiteWise 自动为您生成 ID 时,它始终是唯一的。如果您选择自己的身份证,请确保它是唯一的。

例如,如果您通过调用创建新的资产模型 CreateAssetModel,则可以在请求的可选assetModelId字段中提供自己的 UUID。

相比之下,如果您在请求assetModelId中省略,则会为新的资产模型 Amazon IoT SiteWise 生成一个 UUID。

使用外部 ID

要以 UUID 以外的某种格式定义您自己的 ID,可以分配一个外部 ID。例如,如果您重复使用系统中未使用的 ID,或者为了更便于人阅读 Amazon,则可以这样做。外部 ID 的格式更加灵活。你可以在 Amazon IoT SiteWise API 操作中使用它们来引用你的对象,否则你将使用 UUID。

与 UUID 一样,每个外部 ID 在其上下文中都必须是唯一的。例如,不能有两个具有相同外部 ID 的资产模型。此外,与 UUID 一样,一个对象在其生命周期中只能有一个外部 ID,这是无法更改的。

外部 ID 和 UUID 之间的区别

外部 ID 与 UUID 在以下方面有所不同:

  • 每个对象都有一个 UUID,但外部 ID 是可选的。

  • Amazon IoT SiteWise 从不生成外部 ID。这些都是你自己提供的。

  • 如果对象还没有 ID,则可以随时分配外部 ID。

外部 ID 的格式

有效的外部 ID 具有以下属性:

  • 长度介于 2 到 128 个字符之间。

  • 第一个和最后一个字符必须是字母数字(A-Z、a-z、0-9)。

  • 除第一个和最后一个以外的字符必须是字母数字,或者是以下字符之一:_-.:

例如,外部 ID 必须符合以下正则表达式:

[a-zA-Z0-9][a-zA-Z0-9_\-.:]*[a-zA-Z0-9]+

使用外部 ID 引用对象

在许多地方,你可以使用对象的 UUID 来引用对象,如果有的话,你可以改用它的外部 ID。为此,请将外部 ID 附加到字符串externalId:中。

例如,假设您有一个资产模型,其 UUID(资产模型 ID)为a1b2c3d4-5678-90ab-cdef-11111EXAMPLE,并且还具有外部 ID myExternalIdDescribeAssetModel致电了解详情。您可以使用以下任一值作为的值assetModelId

  • 使用资产模型 ID (UUID) 本身:a1b2c3d4-5678-90ab-cdef-11111EXAMPLE

  • 使用外部 ID:externalId:myExternalId

aws iotsitewise describe-asset-model --asset-model-id a1b2c3d4-5678-90ab-cdef-11111EXAMPLE aws iotsitewise describe-asset-model --asset-model-id externalId:myExternalId
注意

externalId:缀本身不是外部 ID 的一部分。只有在为接受 UUID 或外部 ID 的 API 操作提供外部 ID 时,才需要提供前缀。例如,在查询或更新现有对象时提供前缀。

在为对象定义外部 ID 时(例如创建资产模型时),请不要包含前缀。

您可以通过这种方式使用外部 ID 代替 UUID 来执行中的许多 API 操作 Amazon IoT SiteWise,但不是全部。例如 GetAssetPropertyValue必须使用 UUID;它不支持使用外部 ID。

要确定特定的 API 操作是否支持这种用法,请查阅 API 参考