使用物件 ID - AWS IoT SiteWise

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

使用物件 ID

AWS IoT SiteWise 定義各種類型的永久性物件,例如資產、資產模型、屬性和階層。所有此類物件都有唯一識別元,您可以使用這些識別元來擷取、更新和刪除它們。

AWS IoT SiteWise 為客戶建立 ID 提供不同的選項。 AWS IoT SiteWise 依預設,會在物件建立時為您產生一個。使用者也可以為您的物件提供自己的 ID。

使用物件 UUID

中的每個永久性物件都 AWS IoT SiteWise 有一個 UUID 來識別它。例如,資產模型具有資產模型 ID,資產具有資產 ID,依此類推。此 ID 會在您建立物件時指派,而且在物件的生命週期內保持不變。

當您建立新物件時,依預設會為您 AWS IoT SiteWise 產生唯一的 ID。您還可以在創建時以 UUID 格式提供自己的 ID。

注意

UUID 在建立所在的 AWS 區域內,以及相同物件類型必須是全域唯一的。當您 AWS IoT SiteWise 自動產生 ID 時,它永遠是唯一的。如果您選擇自己的 ID,請確保它是唯一的。

例如,如果您透過呼叫 Model 建立新的資產CreateAsset模型,您可以在要求的選用assetModelId欄位中提供您自己的 UUID。

相比之下,如果您assetModelId從請求中省略,則 AWS IoT SiteWise 會為新資產模型生成 UUID。

使用外部識別碼

若要以 UUID 以外的某種格式定義自己的 ID,您可以指派外部 ID。例如,如果您重複使用您在不是系統中使用的 ID AWS,或者更易於閱讀,則可以執行此操作。外部 ID 具有更靈活的格式。您可以使用它們來引用 AWS IoT SiteWise API 操作中的對象,否則您將使用 UUID。

與 UUID 一樣,每個外部 ID 在其上下文中必須是唯一的。例如,您不能有兩個具有相同外部 ID 的資產模型。此外,像 UUID 一樣,一個對象在其生命週期中只能有一個外部 ID,這是不能更改的。

外部識別碼和 UUID 之間的差異

外部 ID 與 UUID 在以下幾個方面有所不同:

  • 每個對象都有一個 UUID,但外部 ID 是可選的。

  • AWS IoT SiteWise 永遠不會產生外部 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調用DescribeAsset模型以獲取有關它的詳細信息。您可以使用下列其中一項作為值assetModelId

  • 使用資產模型識別碼 (UUID) 本身:a1b2c3d4-5678-90ab-cdef-11111EXAMPLE

  • 使用外部識別碼: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 參考