本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
定義 AWS IoT Events 警報
建立 AWS IoT Events 警示時, AWS IoT SiteWise 會將資產屬性值傳送 AWS IoT Events 至以評估警示的狀態。 AWS IoT Events 警報定義取決於您在中定義的警報模型 AWS IoT Events。若要在資產模型上定義 AWS IoT Events 警示,您可以定義警報複合模型,將 AWS IoT Events 警示模型指定為其警示來源屬性。
AWS IoT Events 警報取決於警報閾值和警報通知設置等輸入。您可以將這些輸入定義為資產模型上的屬性。然後,您可以根據模型在每個資產上自訂這些輸入。 AWS IoT SiteWise 控制台可以為您創建這些屬性。如果您使用 AWS CLI 或定義警示API,則必須在資產模型上手動定義這些屬性。
您也可以定義警示偵測到時所發生的其他動作,例如自訂警示通知動作。例如,您可以設定將推播通知傳送至 Amazon SNS 主題的動作。如需可定義動作的詳細資訊,請參閱AWS IoT Events 開發人員指南中的使用其他 AWS 服務。
更新或刪除資產模型時, AWS IoT SiteWise 可以檢查中的警示模型 AWS IoT Events 是否正在監視與此資產模型相關聯的資產屬性。這可防止您刪除 AWS IoT Events 警示目前正在使用的資產屬性。若要在中啟用此功能 AWS IoT SiteWise,您必須擁有iotevents:ListInputRoutings
權限。此權限允許 AWS IoT SiteWise 對支援的ListInputRoutingsAPI作業進行呼叫 AWS IoT Events。如需詳細資訊,請參閱(可選) ListInputRoutings 權限。
注意
中國 (北京) 地區不提供鬧鐘通知功能。
主題
定義 AWS IoT Events 警報(AWS IoT SiteWise 控制台)
您可以使用 AWS IoT SiteWise 控制台定義現有資產模型的 AWS IoT Events 警報。若要在新資產模型上定義 AWS IoT Events 警示,請建立資產模型,然後完成這些步驟。如需詳細資訊,請參閱建立資產模型。
重要
每個警報都需要一個屬性,該屬性指定要與警報進行比較的閾值。您必須先在資產模型上定義閾值屬性,才能定義警示。
考慮一個例子,其中您要定義一個警報,以檢測風力發電機何時超過其最大風速額定值 50 mph。在定義警報之前,您必須定義預設值的屬性 (最大風速) 50
。
若要在資產模型上定義 AWS IoT Events 警示
-
導覽至 AWS IoT SiteWise 主控台
。 -
在導覽窗格中,選擇 Models (模型)。
-
選擇要定義警示的資產模型。
-
選擇 [鬧鐘] 索引標籤。
-
選擇 [新增鬧鐘]。
-
在 [鬧鐘類型選項] 區段中,選擇 [AWS IoT Events 鬧鐘]。
-
在 [警示詳細資料] 區段中,執行下列動作:
-
輸入警示的名稱。
-
(選擇性) 輸入鬧鐘的說明。
-
-
在 [臨界值定義] 區段中,您可以定義警示偵測到的時間以及警示的嚴重性。請執行下列操作:
-
選取警示偵測到的屬性。每次此屬性接收到新值時,都會將值 AWS IoT SiteWise 傳送 AWS IoT Events 至以評估警示的狀態。
-
選取要用來比較屬性與臨界值的「運算子」。您可以從以下選項中選擇:
-
< 小於
-
<= 小於或等於
-
== 等於
-
! = 不等於
-
>= 大於或等於
-
> 大於
-
-
對於「值」,請選取要用作臨界值的屬性內容。 AWS IoT Events 比較屬性的值與此屬性的值。
-
輸入警示的嚴重性。使用您的團隊理解的數字來反映此警報的嚴重性。
-
-
(選擇性) 在 [通知設定-選用] 區段中,執行下列動作:
-
選擇作用中。
注意
如果您選擇「非作用中」,您和您的團隊將不會收到任何警報通知。
-
對於「收件者」,請選擇收件者。
重要
您可以傳送警示通知給 AWS IAM Identity Center 使用者。若要使用此功能,您必須啟用IAM身分識別中心。您一次只能在一個 AWS 區域中啟用IAM身分識別中心。這表示您只能在啟用IAM身分識別中心的區域中定義警示通知。如需詳細資訊,請參閱《AWS IAM Identity Center 使用者指南》中的「入門」。
-
對於通訊協定,請從下列選項中選擇:
-
電子郵件和簡訊 — 警示會以訊息和電子郵件SMS訊息通知 IAM Identity Center 使用者。
-
電子郵件 — 警示會以電子郵件訊息通知IAM身分識別中心使用者。
-
文字 — 警示會以SMS訊息通知IAM身分識別中心使用者。
-
-
對於「寄件者」,請選擇寄件者。
重要
您必須在 Amazon 簡易電子郵件服務 (AmazonSES) 中驗證寄件者電子郵件地址。如需詳細資訊,請參閱 Amazon 簡易電子郵件服務開發人員指南中的驗證電子郵件地址身分。
-
-
在「預設資產狀態」區段中,您可以為從此資產模型建立的警報設定預設狀態。
注意
您可以在稍後的步驟中針對從此資產模型建立的資產啟用或停用此警示。
-
在 [進階設定] 區段中,您可以設定權限、其他通知設定、警示狀態動作、 SiteWise 監視器中的警示模型,以及確認流程。
注意
AWS IoT Events 警示需要下列服務角色:
-
AWS IoT Events 假設將警示狀態值傳送至的角色 AWS IoT SiteWise。
-
AWS IoT Events 假設將資料傳送至 Lambda 的角色。只有在警報傳送通知時,您才需要此角色。
在「權限」區段中,執行下列動作:
-
對於AWS IoT Events 角色,請使用現有角色或建立具有所需權限的角色。此角色需要允許 iotevents.amazonaws.com 擔任該角色的
iotsitewise:BatchPutAssetPropertyValue
權限和信任關係。 -
對於 AWS IoT Events Lambda 角色,請使用現有角色或建立具有所需權限的角色。此角色需要
lambda:InvokeFunction
和sso-directory:DescribeUser
權限iotevents.amazonaws.com
以及允許擔任角色的信任關係。
-
-
(選擇性) 在 [其他通知設定] 區段中,執行下列動作:
-
對於「收件者」屬性,您可以定義屬性,其值會指定通知的收件者。您可以選擇IAM識別中心使用者做為收件者。
您可以建立屬性或使用資產模型上的現有屬性。
-
如果您選擇 [建立新的收件者屬性],請為屬性指定 [收件者] 屬性名稱和 [收件者] 預設值-選擇性。
-
如果您選擇 [使用現有的收件者屬性],請在 [收件者] 屬性名稱中選擇屬性。警示會使用您選擇之屬性的預設值。
您可以修訂從此資產模型建立之每個資產的預設值。
-
-
對於 Custom message 屬性,您可以定義屬性,其值指定除了預設狀態變更訊息之外要傳送的自訂訊息。例如,您可以指定訊息,協助您的團隊瞭解如何處理此警示。
您可以選擇在資產模型上建立屬性或使用現有屬性。
-
如果您選擇 [建立新的自訂訊息屬性],請為屬性指定 [自訂訊息屬性名稱] 和 [自訂訊息預設值-選用]。
-
如果您選擇 [使用現有的自訂訊息屬性],請在 [自訂郵件屬性名稱] 中選擇屬性。警示會使用您選擇之屬性的預設值。
您可以修訂從此資產模型建立之每個資產的預設值。
-
-
針對「管理您的 Lambda 函數」,執行下列其中一個動作:
若要 AWS IoT SiteWise 建立新的 Lambda 函數,請選擇從AWS受管範本建立新的 Lambda。
若要使用現有的 Lambda 函數,請選擇 [使用現有的 Lambda],然後選擇函數的名稱。
如需詳細資訊,請參閱AWS IoT Events 開發人員指南中的管理警示通知。
-
-
(選擇性) 在「設定狀態」動作區段中,執行下列操作:
-
選擇 「編輯動作」。
-
在 [新增警示狀態動作] 下方,新增動作,然後選擇 [儲存]。
您最多可以新增 10 個動作。
AWS IoT Events 可以在警報處於活動狀態時執行操作。您可以定義內建動作以使用計時器或設定變數,或將資料傳送至其他 AWS 資源。如需詳細資訊,請參閱AWS IoT Events 開發人員指南中的支援動作。
-
-
(選擇性) 在 SiteWise 監視器-選用的管理警示模式下,選擇作用中或非作用中。
使用此選項,以便您可以在 SiteWise Monitor 中更新警報模型。此選項預設為啟用。
-
在確認流程下,選擇有效或無效。如需確認流程的詳細資訊,請參閱警報狀態。
-
選擇 [新增鬧鐘]。
注意
主 AWS IoT SiteWise 控台會發出多個API要求,將警示新增至資產模型。當您選擇 [新增警示] 時,主控台會開啟顯示這些API要求進度的對話方塊。請留在此頁面,直到每個要API求成功或API要求失敗為止。如果要求失敗,請關閉對話方塊,修正問題,然後選擇 [新增警示] 再試一次。
定義 AWS IoT Events 警報(AWS IoT Events 控制台)
您可以使用 AWS IoT Events 控制台定義現有資產模型的 AWS IoT Events 警報。若要在新資產模型上定義 AWS IoT Events 警示,請建立資產模型,然後完成這些步驟。如需詳細資訊,請參閱建立資產模型。
重要
每個警報都需要一個屬性,該屬性指定要與警報進行比較的閾值。您必須先在資產模型上定義閾值屬性,才能定義警示。
考慮一個例子,其中您要定義一個警報,以檢測風力發電機何時超過其最大風速額定值 50 mph。在定義警報之前,您必須定義預設值的屬性 (最大風速) 50
。
若要在資產模型上定義 AWS IoT Events 警示
-
導覽至 AWS IoT Events 主控台
。 -
在功能窗格中,選擇 [警報模型]。
-
選擇 [建立鬧鐘模型]。
-
輸入警示的名稱。
-
(選擇性) 輸入鬧鐘的說明。
-
在 [警示目標] 區段中,執行下列動作:
-
對於「目標」選項,請選擇AWS IoT SiteWise 資產屬性。
-
選擇您要新增警示的資產模型。
-
-
在 [臨界值定義] 區段中,您可以定義警示偵測到的時間以及警示的嚴重性。請執行下列操作:
-
選取警示偵測到的屬性。每次此屬性接收到新值時,都會將值 AWS IoT SiteWise 傳送 AWS IoT Events 至以評估警示的狀態。
-
選取要用來比較屬性與臨界值的「運算子」。您可以從以下選項中選擇:
-
< 小於
-
<= 小於或等於
-
== 等於
-
! = 不等於
-
>= 大於或等於
-
> 大於
-
-
對於「值」,請選取要用作臨界值的屬性內容。 AWS IoT Events 比較屬性的值與此屬性的值。
-
輸入警示的嚴重性。使用您的團隊理解的數字來反映此警報的嚴重性。
-
-
(選擇性) 在 [通知設定-選用] 區段中,執行下列動作:
-
對於通訊協定,請從下列選項中選擇:
-
電子郵件和簡訊 — 警示會以訊息和電子郵件SMS訊息通知 IAM Identity Center 使用者。
-
電子郵件 — 警示會以電子郵件訊息通知IAM身分識別中心使用者。
-
文字 — 警示會以SMS訊息通知IAM身分識別中心使用者。
-
-
對於「寄件者」,請選擇寄件者。
重要
您必須在 Amazon 簡易電子郵件服務 (AmazonSES) 中驗證寄件者電子郵件地址。如需詳細資訊,請參閱 Amazon SES 簡易電子郵件服務開發人員指南中的在 Amazon 中驗證電子郵件地址。
-
在「收件者」屬性-選用中選擇屬性。警示會使用您選擇之屬性的預設值。
-
在 [自訂訊息屬性-選用] 中選擇屬性。警示會使用您選擇之屬性的預設值。
-
-
在「執行個體」區段中,指定此警示的「預設」狀態。您可以在稍後的步驟中,針對從此資產模型建立的所有資產啟用或停用此警示。
-
在 [進階設定] 設定中,您可以設定權限、其他通知設定、警示狀態動作、 SiteWise 監視器中的警示模型,以及確認流程。
注意
AWS IoT Events 警示需要下列服務角色:
-
AWS IoT Events 假設將警示狀態值傳送至的角色 AWS IoT SiteWise。
-
AWS IoT Events 假設將資料傳送至 Lambda 的角色。只有在警報傳送通知時,您才需要此角色。
-
在「確認流程」區段中,選擇「啟用」或「停用」。如需確認流程的詳細資訊,請參閱警報狀態。
-
在「權限」區段中,執行下列動作:
-
對於AWS IoT Events 角色,請使用現有角色或建立具有所需權限的角色。此角色需要允許 iotevents.amazonaws.com 擔任該角色的
iotsitewise:BatchPutAssetPropertyValue
權限和信任關係。 -
對於 Lambda 角色,請使用現有角色或建立具有所需權限的角色。此角色需要
lambda:InvokeFunction
和sso-directory:DescribeUser
權限iotevents.amazonaws.com
以及允許擔任角色的信任關係。
-
-
(選擇性) 在 [其他通知設定] 窗格中,執行下列動作:
-
針對「管理您的 Lambda 函數」,執行下列其中一個動作:
若要 AWS IoT Events 建立新的 Lambda 函數,請選擇建立新的 Lambda 函數。
若要使用現有的 Lambda 函數,請選擇「使用現有的 Lambda 函數」,然後選擇函數的名稱。
如需詳細資訊,請參閱AWS IoT Events 開發人員指南中的管理警示通知。
-
-
(選擇性) 在「設定狀態」動作-選用區段中,執行下列操作:
-
在 [警示狀態動作] 下,新增動作。並選擇 [儲存]。
您最多可以新增 10 個動作。
AWS IoT Events 可以在警報處於活動狀態時執行操作。您可以定義內建動作以使用計時器或設定變數,或將資料傳送至其他 AWS 資源。如需詳細資訊,請參閱AWS IoT Events 開發人員指南中的支援動作。
-
-
-
選擇 Create (建立)。
注意
主 AWS IoT Events 控台會發出多個API要求,將警示新增至資產模型。當您選擇 [新增警示] 時,主控台會開啟顯示這些API要求進度的對話方塊。請留在此頁面,直到每個要API求成功或API要求失敗為止。如果要求失敗,請關閉對話方塊,修正問題,然後選擇 [新增警示] 再試一次。
定義 AWS IoT Events 警報 (AWS CLI)
您可以使用 AWS Command Line Interface (AWS CLI) 定義監視資產屬性的 AWS IoT Events 警示。您可以在新的或現有的資產模型上定義警報。在資產模型上定義警示後,您可以在中建立警示 AWS IoT Events 並將其連接至資產模型。在此過程中,您可以執行以下操作:
步驟 1:定義資產模型的警報
將警示定義和關聯性質新增至新的或現有的資產模型。
若要在資產模型上定義警示 (CLI)
-
建立稱為
asset-model-payload.json
的檔案。請遵循這些其他章節中的步驟,將資產模型的詳細資訊新增至檔案,但不要提交建立或更新資產模型的要求。在本節中,您會將警示定義新增至asset-model-payload.json
檔案中的資產模型詳細資料。-
如需如何建立資產模型的詳細資訊,請參閱建立資產模型 (AWS CLI)。
-
如需如何更新現有資產模型的詳細資訊,請參閱〈〉更新資產或元件模型 (AWS CLI)。
注意
您的資產模型必須至少定義一個資產屬性,包括要使用警示監視的資產屬性。
-
-
將警報複合模型 (
assetModelCompositeModels
) 新增至資產模型。 AWS IoT Events 警報複合模型會指定IOT_EVENTS
類型並指定警示來源屬性。您可以在中建立警示模型之後新增警示來源內容 AWS IoT Events。重要
警報複合模型必須與您稍後建立的 AWS IoT Events 警報模型具有相同的名稱。警示型號名稱只能包含英數字元。指定唯一的英數字元名稱,以便您可以為警示模型使用相同的名稱。
{
...
"assetModelCompositeModels": [ { "name": "BoilerTemperatureHighAlarm", "type": "AWS/ALARM", "properties": [ { "name": "AWS/ALARM_TYPE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "IOT_EVENTS" } } }, { "name": "AWS/ALARM_STATE", "dataType": "STRUCT", "dataTypeSpec": "AWS/ALARM_STATE", "type": { "measurement": {} } } ] } ] } -
將警報閾值屬性添加到資產模型。指定用於此臨界值的預設值。您可以根據此模型覆寫每個資產的此預設值。
注意
警示臨界值屬性必須是
INTEGER
或DOUBLE
。{
...
"assetModelProperties": [...
{ "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } } ] } -
(選擇性) 將警示通知屬性新增至資產模型。這些屬性會指定 IAM Identity Center 收件者,以及在警示變更狀態時 AWS IoT Events 用來傳送通知的其他輸入。您可以根據此模型覆寫每個資產上的這些預設值。
重要
您可以傳送警示通知給 AWS IAM Identity Center 使用者。若要使用此功能,您必須啟用IAM身分識別中心。您一次只能在一個 AWS 區域中啟用IAM身分識別中心。這表示您只能在啟用IAM身分識別中心的區域中定義警示通知。如需詳細資訊,請參閱《AWS IAM Identity Center 使用者指南》中的「入門」。
請執行下列操作:
-
新增指定IAM身分識別中心識別身分存放區 ID 的屬性。您可以使用IAM身分識別中心ListInstancesAPI作業列出您的身分識別存放區。此作業僅適用於您啟用IAM身分識別中心的區域。
aws sso-admin list-instances
然後,指定識別身分存放區 ID (例如,
d-123EXAMPLE
) 做為屬性的預設值。{
...
"assetModelProperties": [...
{ "name": "identityStoreId
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE
" } } } ] } -
新增屬性,以指定接收通知之IAM身分識別中心使用者的 ID。若要定義預設通知收件者,請新增IAM身分識別中心使用者 ID 做為預設值。執行下列其中一項作業以取得IAM身分識別中心使用者 ID:
-
您可以使用IAM身分識別中心ListUsersAPI取得您知道其使用者名稱之使用者的 ID。Replace (取代)
d-123EXAMPLE
使用您的身份存儲的 ID,並替換Name
使用使用者的使用者名稱。aws identitystore list-users \ --identity-store-id
d-123EXAMPLE
\ --filters AttributePath=UserName,AttributeValue=Name
-
使用IAM身分識別中心主控台
瀏覽您的使用者並尋找使用者 ID。
然後,指定使用者 ID (例如,
123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE
) 做為屬性的預設值,或定義不含預設值的屬性。{
...
"assetModelProperties": [...
{ "name": "userId
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE
" } } } ] } -
-
(選擇性) 新增屬性,以指定 SMS (文字) 訊息通知的預設寄件者識別碼。寄件者識別碼會在 Amazon 簡單通知服務 (AmazonSNS) 傳送的訊息上顯示為訊息寄件者。如需詳細資SMS訊,請參閱 Amazon 簡單通知服務開發人員指南SNS中的要求傳送者透過 Amazon IDs 進行簡訊。
{
...
"assetModelProperties": [...
{ "name": "senderId
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory
" } } } ] } -
(選擇性) 新增屬性,以指定電子郵件通知中用作寄件者地址的預設電子郵件地址。
{
...
"assetModelProperties": [...
{ "name": "fromAddress
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com
" } } } ] } -
(選擇性) 新增屬性,以指定要在電子郵件通知中使用的預設主旨。
{
...
"assetModelProperties": [...
{ "name": "emailSubject
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature
" } } } ] } -
(選擇性) 新增屬性,以指定要包含在通知中的其他訊息。依預設,通知訊息包含警示的相關資訊。您也可以加入額外的訊息,為使用者提供更多資訊。
{
...
"assetModelProperties": [...
{ "name": "additionalMessage
", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm.
" } } } ] }
-
-
建立資產模型或更新現有的資產模型。執行以下任意一項:
-
若要建立資產模型,請執行下列指令。
aws iotsitewise create-asset-model --cli-input-json file://asset-model-payload.json
-
若要更新既有的資產模型,請執行下列指令。Replace (取代)
asset-model-id
與資產模型的 ID。aws iotsitewise update-asset-model \ --asset-model-id
asset-model-id
\ --cli-input-json file://asset-model-payload.json
執行命令之後,請注意回應
assetModelId
中的。 -
下列資產模型代表報告溫度資料的鍋爐。此資產模型定義了檢測鍋爐過熱時的警報。
{ "assetModelName": "Boiler Model", "assetModelDescription": "Represents a boiler.", "assetModelProperties": [ { "name": "Temperature", "dataType": "DOUBLE", "unit": "C", "type": { "measurement": {} } }, { "name": "Temperature Max Threshold", "dataType": "DOUBLE", "type": { "attribute": { "defaultValue": "105.0" } } }, { "name": "identityStoreId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "d-123EXAMPLE" } } }, { "name": "userId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "123EXAMPLE-a1b2c3d4-5678-90ab-cdef-33333EXAMPLE" } } }, { "name": "senderId", "dataType": "STRING", "type": { "attribute": { "defaultValue": "MyFactory" } } }, { "name": "fromAddress", "dataType": "STRING", "type": { "attribute": { "defaultValue": "my.factory@example.com" } } }, { "name": "emailSubject", "dataType": "STRING", "type": { "attribute": { "defaultValue": "[ALERT] High boiler temperature" } } }, { "name": "additionalMessage", "dataType": "STRING", "type": { "attribute": { "defaultValue": "Turn off the power before you check the alarm." } } } ], "assetModelHierarchies": [ ], "assetModelCompositeModels": [ { "name": "BoilerTemperatureHighAlarm", "type": "AWS/ALARM", "properties": [ { "name": "AWS/ALARM_TYPE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "IOT_EVENTS" } } }, { "name": "AWS/ALARM_STATE", "dataType": "STRUCT", "dataTypeSpec": "AWS/ALARM_STATE", "type": { "measurement": {} } } ] } ] }
步驟 2:定義 AWS IoT Events 警報模型
在中建立警報模型 AWS IoT Events。在中 AWS IoT Events,您可以使用運算式來指定警示模型中的值。您可以使用表示式來指定 AWS IoT SiteWise 要評估的值,並用作警示的輸入。 AWS IoT SiteWise 將資產屬性值傳送至警示模型時,會 AWS IoT Events 評估運算式以取得屬性值或資產 ID。您可以在警報模型中使用下列運算式:
-
資產屬性值
若要取得資產屬性的值,請使用下列運算式。Replace (取代)
assetModelId
使用資產模型的 ID 並替換propertyId
與屬性的 ID。$sitewise.assetModel.`
assetModelId
`.`propertyId
`.propertyValue.value -
資產 IDs
若要取得資產的 ID,請使用下列運算式。Replace (取代)
assetModelId
使用資產模型的 ID 並替換propertyId
與屬性的 ID。$sitewise.assetModel.`
assetModelId
`.`propertyId
`.assetId
注意
建立警示模型時,您可以定義常值,而不是評估為 AWS IoT SiteWise 值的運算式。這可以減少您在資產模型上定義的屬性數量。但是,如果您將值定義為常值,則無法根據資產模型根據資產自訂該值。您的 AWS IoT SiteWise Monitor 使用者也無法自訂鬧鐘,因為他們只能在資產上設定鬧鐘設定。
建立 AWS IoT Events 鬧鐘模型 (CLI)
-
在中建立警示模型時 AWS IoT Events,您必須指定警示使用之每個屬性的 ID,其中包括下列項目:
-
複合資產模型中的警報狀態屬性
-
警報監控的屬性
-
閾值屬性
-
(選擇性) IAM 識別中心識別身分存放區 ID 屬性
-
(選擇性) IAM 身分識別中心使用者 ID 屬性
-
(選擇性) SMS 寄件者識別碼屬性
-
(選擇性) 電子郵件寄件者地址屬性
-
(選擇性) 電子郵件主旨屬性
-
(選擇性) 其他訊息屬性
執行下列命令以擷取IDs資產模型上的這些性質。Replace (取代)
asset-model-id
具有上一個步驟中資產模型的 ID。aws iotsitewise describe-asset-model --asset-model-id
asset-model-id
此操作會傳回包含資產模型詳細資料的回應。請記下警示使用之每個屬性的 ID。您可以在下一個步驟中建立 AWS IoT Events 警報模型IDs時使用這些功能。
-
-
在中建立警報模型 AWS IoT Events。請執行下列操作:
-
建立稱為
alarm-model-payload.json
的檔案。 -
將下列JSON物件複製到檔案中。
-
輸入警示的名稱 (
alarmModelName
alarmModelDescription
)、說明 (severity
) 和嚴重性 ()。對於嚴重性,請指定反映公司嚴重性層級的整數。重要
警報模型的名稱必須與您先前在資產模型中定義的警報複合模型具有相同的名稱。
警示型號名稱只能包含英數字元。
{ "alarmModelName": "
BoilerTemperatureHighAlarm
", "alarmModelDescription": "Detects when the boiler temperature is high.
", "severity":3
} -
將比較規則 (
alarmRule
) 新增至警示。此規則會定義要監視的內容 (inputProperty
)、要比較的臨界值 (threshold
),以及要使用的比較運算子 (comparisonOperator
)。-
Replace (取代)
assetModelId
與資產模型的 ID。 -
Replace (取代)
alarmPropertyId
具有警報監視的屬性 ID。 -
Replace (取代)
thresholdAttributeId
具有閾值屬性屬性屬性的識別碼。 -
Replace (取代)
GREATER
與用來比較屬性值與臨界值的運算子。您可以從以下選項中選擇:-
LESS
-
LESS_OR_EQUAL
-
EQUAL
-
NOT_EQUAL
-
GREATER_OR_EQUAL
-
GREATER
-
{ "alarmModelName": "
BoilerTemperatureHighAlarm
", "alarmModelDescription": "Detects when the boiler temperature is high.
", "severity":3
, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.propertyValue.value", "comparisonOperator": "GREATER
", "threshold": "$sitewise.assetModel.`assetModelId
`.`thresholdAttributeId
`.propertyValue.value" } } } -
-
添加一個動作(
alarmEventActions
)以在警報更改狀態 AWS IoT SiteWise 時向警報狀態發送警報狀態。注意
對於進階組態,您可以定義警示變更狀態時要執行的其他動作。例如,您可以呼叫 AWS Lambda 函數或發佈至MQTT主題。如需詳細資訊,請參閱開AWS IoT Events 發人員指南中的使用其他 AWS 服務。
-
Replace (取代)
assetModelId
與資產模型的 ID。 -
Replace (取代)
alarmPropertyId
具有警報監視的屬性 ID。 -
Replace (取代)
alarmStatePropertyId
具有警報複合模型中警報狀態屬性的 ID。
{ "alarmModelName": "
BoilerTemperatureHighAlarm
", "alarmModelDescription": "Detects when the boiler temperature is high.
", "severity":3
, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.propertyValue.value", "comparisonOperator": "GREATER
", "threshold": "$sitewise.assetModel.`assetModelId
`.`thresholdAttributeId
`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.assetId", "propertyId": "'alarmStatePropertyId
'" } } ] } } -
-
(選擇性) 設定警示通知設定。警示通知動作會使用帳戶中的 Lambda 函數來傳送警示通知。如需詳細資訊,請參閱警報通知的要求。在警示通知設定中,您可以設定SMS並以電子郵件傳送通知給 IAM Identity Center 使用者。請執行下列操作:
-
將警示通知組態 (
alarmNotification
) 新增至中的承載alarm-model-payload.json
。-
Replace (取代)
alarmNotificationFunctionArn
具有處ARN理警報通知的 Lambda 函數。
{ "alarmModelName": "
BoilerTemperatureHighAlarm
", "alarmModelDescription": "Detects when the boiler temperature is high.
", "severity":3
, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.propertyValue.value", "comparisonOperator": "GREATER
", "threshold": "$sitewise.assetModel.`assetModelId
`.`thresholdAttributeId
`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.assetId", "propertyId": "'alarmStatePropertyId
'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn
" } } } ] } } -
-
(選擇性) 設定要在SMS警示變更狀態時傳送給IAM身分識別中心使用者的通知 (
smsConfigurations
)。-
Replace (取代)
identityStoreIdAttributeId
含有包含IAM身分識別中心識別身分存放區識別碼之屬性的識別碼。 -
Replace (取代)
userIdAttributeId
含有包含IAM身分識別中心使用者識別碼之屬性的識別碼。 -
Replace (取代)
senderIdAttributeId
使用包含 Amazon SNS 寄件者識別碼的屬性識別碼,或senderId
從承載中移除。 -
Replace (取代)
additionalMessageAttributeId
具有包含其他消息的屬性的 ID,或additionalMessage
從有效負載中刪除。
{ "alarmModelName": "
BoilerTemperatureHighAlarm
", "alarmModelDescription": "Detects when the boiler temperature is high.
", "severity":3
, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.propertyValue.value", "comparisonOperator": "GREATER
", "threshold": "$sitewise.assetModel.`assetModelId
`.`thresholdAttributeId
`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.assetId", "propertyId": "'alarmStatePropertyId
'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn
" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId
`.`identityStoreIdAttributeId
`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId
`.`userIdAttributeId
`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId
`.`senderIdAttributeId
`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId
`.`additionalMessageAttributeId
`.propertyValue.value" } ] } ] } } -
-
(選擇性) 設定要在警示狀態變更時傳送給 I IAM dentity Center 使用者的電子郵件通知 (
emailConfigurations
)。-
Replace (取代)
identityStoreIdAttributeId
具有IAM身分識別中心識別身分存放區 ID 屬性內容的識別碼。 -
Replace (取代)
userIdAttributeId
具有IAM身分識別中心使用者 ID 屬性內容的識別碼。 -
Replace (取代)
fromAddressAttributeId
具有「從」地址屬性屬性屬性的 ID,或from
從有效負載中刪除。 -
Replace (取代)
emailSubjectAttributeId
使用電子郵件主題屬性屬性的 ID,或subject
從有效負載中刪除。 -
Replace (取代)
additionalMessageAttributeId
具有其他消息屬性屬性屬性的 ID,或additionalMessage
從有效負載中刪除。
{ "alarmModelName": "
BoilerTemperatureHighAlarm
", "alarmModelDescription": "Detects when the boiler temperature is high.
", "severity":3
, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.propertyValue.value", "comparisonOperator": "GREATER
", "threshold": "$sitewise.assetModel.`assetModelId
`.`thresholdAttributeId
`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.assetId", "propertyId": "'alarmStatePropertyId
'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn
" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId
`.`identityStoreIdAttributeId
`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId
`.`userIdAttributeId
`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId
`.`senderIdAttributeId
`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId
`.`additionalMessageAttributeId
`.propertyValue.value" } ], "emailConfigurations": [ { "from": "$sitewise.assetModel.`assetModelId
`.`fromAddressAttributeId
`.propertyValue.value", "recipients": { "to": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId
`.`identityStoreIdAttributeId
`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId
`.`userIdAttributeId
`.propertyValue.value" } } ] }, "content": { "subject": "$sitewise.assetModel.`assetModelId
`.`emailSubjectAttributeId
`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId
`.`additionalMessageAttributeId
`.propertyValue.value" } } ] } ] } } -
-
-
(選擇性) 將警示功能 (
alarmCapabilities
) 新增至中的承載alarm-model-payload.json
。在此物件中,您可以指定是否啟用確認流程,以及根據資產模型的資產預設啟用狀態。如需確認流程的詳細資訊,請參閱警報狀態。{ "alarmModelName": "
BoilerTemperatureHighAlarm
", "alarmModelDescription": "Detects when the boiler temperature is high.
", "severity":3
, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.propertyValue.value", "comparisonOperator": "GREATER
", "threshold": "$sitewise.assetModel.`assetModelId
`.`thresholdAttributeId
`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.assetId", "propertyId": "'alarmStatePropertyId
'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn
" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId
`.`identityStoreIdAttributeId
`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId
`.`userIdAttributeId
`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId
`.`senderIdAttributeId
`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId
`.`additionalMessageAttributeId
`.propertyValue.value" } ], "emailConfigurations": [ { "from": "$sitewise.assetModel.`assetModelId
`.`fromAddressAttributeId
`.propertyValue.value", "recipients": { "to": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId
`.`identityStoreIdAttributeId
`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId
`.`userIdAttributeId
`.propertyValue.value" } } ] }, "content": { "subject": "$sitewise.assetModel.`assetModelId
`.`emailSubjectAttributeId
`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId
`.`additionalMessageAttributeId
`.propertyValue.value" } } ] } ] }, "alarmCapabilities": { "initializationConfiguration": { "disabledOnInitialization":false
}, "acknowledgeFlow": { "enabled":true
} } } -
新增 AWS IoT Events 可假設要將資料傳送至的IAM服務角色 (
roleArn
) AWS IoT SiteWise。此角色需要允許iotevents.amazonaws.com
擔任角色的iotsitewise:BatchPutAssetPropertyValue
權限和信任關係。若要傳送通知,此角色也需要lambda:InvokeFunction
和sso-directory:DescribeUser
權限。如需詳細資訊,請參閱AWS IoT Events 開發人員指南中的警示服務角色。-
取
roleArn
代為 AWS IoT Events 可以假定執行這些動作ARN的角色。
{ "alarmModelName": "
BoilerTemperatureHighAlarm
", "alarmModelDescription": "Detects when the boiler temperature is high.
", "severity":3
, "alarmRule": { "simpleRule": { "inputProperty": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.propertyValue.value", "comparisonOperator": "GREATER
", "threshold": "$sitewise.assetModel.`assetModelId
`.`thresholdAttributeId
`.propertyValue.value" } }, "alarmEventActions": { "alarmActions": [ { "iotSiteWise": { "assetId": "$sitewise.assetModel.`assetModelId
`.`alarmPropertyId
`.assetId", "propertyId": "'alarmStatePropertyId
'" } } ] }, "alarmNotification": { "notificationActions": [ { "action": { "lambdaAction": { "functionArn": "alarmNotificationFunctionArn
" } }, "smsConfigurations": [ { "recipients": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId
`.`identityStoreIdAttributeId
`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId
`.`userIdAttributeId
`.propertyValue.value" } } ], "senderId": "$sitewise.assetModel.`assetModelId
`.`senderIdAttributeId
`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId
`.`additionalMessageAttributeId
`.propertyValue.value" } ], "emailConfigurations": [ { "from": "$sitewise.assetModel.`assetModelId
`.`fromAddressAttributeId
`.propertyValue.value", "recipients": { "to": [ { "ssoIdentity": { "identityStoreId": "$sitewise.assetModel.`assetModelId
`.`identityStoreIdAttributeId
`.propertyValue.value", "userId": "$sitewise.assetModel.`assetModelId
`.`userIdAttributeId
`.propertyValue.value" } } ] }, "content": { "subject": "$sitewise.assetModel.`assetModelId
`.`emailSubjectAttributeId
`.propertyValue.value", "additionalMessage": "$sitewise.assetModel.`assetModelId
`.`additionalMessageAttributeId
`.propertyValue.value" } } ] } ] }, "alarmCapabilities": { "initializationConfiguration": { "disabledOnInitialization":false
}, "acknowledgeFlow": { "enabled":false
} }, "roleArn": "arn:aws:iam::123456789012
:role/MyIoTEventsAlarmRole
" } -
-
執行下列命令,以從中的裝載建立 AWS IoT Events 警示模型
alarm-model-payload.json
。aws iotevents create-alarm-model --cli-input-json file://alarm-model-payload.json
-
作業會傳回包含警示模型ARN的回應
alarmModelArn
。複製此選項ARN以在下一個步驟中在資產模型的警報定義中設定。
-
步驟 3:啟用 AWS IoT SiteWise 和之間的資料流 AWS IoT Events
在和中建立必要的資源之 AWS IoT SiteWise 後 AWS IoT Events,您可以啟用資源之間的資料流程,以啟用警示。在本節中,您將更新資產模型中的警示定義,以使用您在上一個步驟中建立的警示模型。
啟用與 AWS IoT Events (CLI) 之間 AWS IoT SiteWise 的資料流
-
在資產模型中將警報模型設定為警報來源。請執行下列操作:
-
執行以下命令來擷取現有的資產模型定義。Replace (取代)
asset-model-id
與資產模型的 ID。aws iotsitewise describe-asset-model --asset-model-id
asset-model-id
此操作會傳回包含資產模型詳細資料的回應。
-
建立名為
update-asset-model-payload.json
的文件,並將前一個命令的回應複製到檔案中。 -
從
update-asset-model-payload.json
文件中刪除以下鍵值對:-
assetModelId
-
assetModelArn
-
assetModelCreationDate
-
assetModelLastUpdateDate
-
assetModelStatus
-
-
將警示來源屬性 (
AWS/ALARM_SOURCE
) 新增至您先前定義的警報複合模型。Replace (取代)alarmModelArn
與警報模型,它設置警報源屬性的值。ARN{
...
"assetModelCompositeModels": [...
{ "name": "BoilerTemperatureHighAlarm", "type": "AWS/ALARM", "properties": [ { "id": "a1b2c3d4-5678-90ab-cdef-11111EXAMPLE", "name": "AWS/ALARM_TYPE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "IOT_EVENTS" } } }, { "id": "a1b2c3d4-5678-90ab-cdef-22222EXAMPLE", "name": "AWS/ALARM_STATE", "dataType": "STRUCT", "dataTypeSpec": "AWS/ALARM_STATE", "type": { "measurement": {} } }, { "name": "AWS/ALARM_SOURCE", "dataType": "STRING", "type": { "attribute": { "defaultValue": "alarmModelArn
" } } } ] } ] } -
執行下列命令,以使用儲存在
update-asset-model-payload.json
檔案中的定義來更新資產模型。Replace (取代)asset-model-id
與資產模型的 ID。aws iotsitewise update-asset-model \ --asset-model-id
asset-model-id
\ --cli-input-json file://update-asset-model-payload.json
-
您的資產模型現在會定義在中偵測到的警示 AWS IoT Events。警示會根據此資產模型監控所有資產中的目標屬性。您可以設定每個資產的警示,以自訂每個資產的內容,例如臨界值或IAM身分中心收件者。如需詳細資訊,請參閱設定資產的警示。