本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
设置AWS IoT SiteWise对象 ID
AWS IoT SiteWise定义各种类型的永久对象,例如资产、资产模型、属性和层次结构。所有这些对象都有唯一的标识符,可用于对其进行检索、更新和删除。
AWS IoT SiteWise为客户提供了不同的身份创建选项。 AWS IoT SiteWise默认情况下,在创建对象时会为您生成一个。用户还可以向您的对象提供他们自己的 ID。
使用对象 UUID
中的每个永久对象都AWS IoT SiteWise有一个用于标识它的 UUID
创建新对象时,默认情况下会为您AWS IoT SiteWise生成一个唯一的 ID。您也可以在创建时以 UUID 格式提供您自己的 ID。
注意
UUID 在创建它的AWS区域内必须是全局唯一的,并且对于相同的对象类型。AWS IoT SiteWise自动为您生成 ID 时,它始终是唯一的。如果您自行选择 ID,请确保其唯一性。
例如,如果您通过调用创建新的资产模型 CreateAssetModel,则可以在请求的可选assetModelId字段中提供自己的 UUID。
相比之下,如果您在该请求中省略 assetModelId,则 AWS IoT SiteWise 会为新的资产模型生成一个 UUID。
使用外部 ID
要以 UUID 以外的某种格式定义您自己的 ID,您可以分配一个外部 ID。例如,如果您重复使用系统中未使用的 ID,或者为了更便于人阅读AWS,则可以这样做。外部 ID 的格式更加灵活。您可以在 AWS IoT SiteWise API 操作中使用它们来引用您的对象,而不是使用 UUID。
与 UUID 一样,每个外部 ID 在其上下文中都必须是唯一的。例如,您无法拥有具有同一外部 ID 的两个资产模型。此外,与 UUID 一样,一个对象在其生命周期中只能有一个外部 ID,并且该外部 ID 无法更改。
外部 ID 和 UUID 之间的区别
外部 ID 与 UUID 存在以下差异:
-
每个对象都有一个 UUID,但外部 ID 是可选的。
-
AWS 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。为此,请将外部 ID 附加到字符串 externalId: 中。
例如,假设您有一个资产模型,其 UUID(资产模型 ID)为 a1b2c3d4-5678-90ab-cdef-11111EXAMPLE,并且还具有外部 ID myExternalId。DescribeAssetModel致电了解详情。您可以使用以下任意一项作为 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 操作AWS IoT SiteWise,但不是全部。例如 GetAssetPropertyValue,必须使用 UUID;它不支持使用外部 ID。
要确定特定的 API 操作是否支持这种用法,请查阅 API 参考。