終止支援通知:2026 年 5 月 20 日, AWS 將終止對 的支援 AWS IoT Events。2026 年 5 月 20 日之後,您將無法再存取 AWS IoT Events 主控台或 AWS IoT Events 資源。如需詳細資訊,請參閱AWS IoT Events 終止支援。
本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
中的 AWS IoT SiteWise 警示遷移程序 AWS IoT Events
本節說明替代解決方案,可在您遷移時提供類似的警示功能 AWS IoT Events。
對於使用 AWS IoT Events 警示的 AWS IoT SiteWise 屬性,您可以使用 CloudWatch 警示遷移至解決方案。此方法透過已建立的 SLAs 和其他功能提供強大的監控功能,例如異常偵測和分組警示。
比較架構
屬性目前的 AWS IoT Events 警示組態 AWS IoT SiteWise 需要在資產模型AssetModelCompositeModels
中建立 ,如AWS IoT SiteWise 《 使用者指南》中的在 中定義外部警示 AWS IoT SiteWise中所述。對新解決方案的修改通常透過 主控台進行 AWS IoT Events 管理。
新解決方案利用 CloudWatch 警示提供警示管理。此方法使用 AWS IoT SiteWise 通知將屬性資料點發佈至 AWS IoT Core MQTT 主題,然後由 Lambda 函數處理。函數會將這些通知轉換為 CloudWatch 指標,透過 CloudWatch 的警示架構啟用警示監控。
用途 | 解決方案 | 差異 |
---|---|---|
資料來源 – 來自 的屬性資料 AWS IoT SiteWise |
AWS IoT SiteWise MQTT 通知 |
使用 AWS IoT SiteWise 屬性的 MQTT 通知取代直接 IoT Events 整合 |
資料處理 – 轉換屬性資料 |
Lambda 函數 |
處理 AWS IoT SiteWise 屬性通知並將其轉換為 CloudWatch 指標 |
警示評估 – 監控指標並觸發警示 |
Amazon CloudWatch 警示 |
以 CloudWatch AWS IoT Events 警示取代警示,提供異常偵測等其他功能 |
整合 – 與 的連線 AWS IoT SiteWise |
AWS IoT SiteWise 外部警示 |
將 CloudWatch 警示匯入回 AWS IoT SiteWise 做為外部警示的選用功能 |
步驟 1:在資產屬性上啟用 MQTT 通知
如果您使用 AWS IoT SiteWise 警示的 AWS IoT Events 整合,您可以為要監控的每個屬性開啟 MQTT 通知。
-
遵循程序中的資產設定警示 AWS IoT SiteWise,直到您完成編輯資產模型屬性的每個步驟。
-
對於每個要遷移的屬性,請將 MQTT 通知狀態變更為 ACTIVE。
-
請注意警示針對每個修改的警示屬性發佈的主題路徑。
如需詳細資訊,請參閱下列文件資源:
-
《 AWS IoT SiteWise 使用者指南》中的了解 MQTT 主題中的資產屬性。
-
《 AWS IoT 開發人員指南》中的 MQTT 主題。
步驟 2:建立 AWS Lambda 函數
建立 Lambda 函數以讀取 MQTT 主題發佈的 TQV 陣列,並將個別值發佈至 CloudWatch。我們將使用此 Lambda 函數作為在 AWS IoT Core 訊息規則中觸發的目的地動作。
-
選擇 Create function (建立函數)。
-
輸入函數名稱的名稱。
-
選取 NodeJS 22.x 作為執行時間。
-
在變更預設執行角色下拉式清單中,選擇使用現有角色,然後選取您在先前步驟中建立的 IAM 角色。
-
選擇 Create function (建立函數)。
-
在取代硬式編碼常數之後,貼上下列程式碼片段。
import json import boto3 from datetime import datetime # Initialize CloudWatch client cloudwatch = boto3.client('cloudwatch') def lambda_handler(message, context): try: # Parse the incoming IoT message # Extract relevant information asset_id = message['payload']['assetId'] property_id = message['payload']['propertyId'] # Process each value in the values array for value in message['payload']['values']: # Extract timestamp and value timestamp = datetime.fromtimestamp(value['timestamp']['timeInSeconds']) metric_value = value['value']['doubleValue'] quality = value.get('quality', 'UNKNOWN') # Publish to CloudWatch response = cloudwatch.put_metric_data( Namespace='
IoTSiteWise/AssetMetrics
', MetricData=[ { 'MetricName': f'Property_your-property-id
', 'Value': metric_value, 'Timestamp': timestamp, 'Dimensions': [ { 'Name': 'AssetId', 'Value': 'your-asset-id
' }, { 'Name': 'Quality', 'Value': quality } ] } ] ) return { 'statusCode': 200, 'body': json.dumps('Successfully published metrics to CloudWatch') } except Exception as e: print(f'Error processing message: {str(e)}') return { 'statusCode': 500, 'body': json.dumps(f'Error: {str(e)}') }
步驟 3:建立 AWS IoT Core 訊息路由規則
-
遵循教學課程:重新發佈 MQTT 訊息程序,在出現提示時輸入下列資訊:
-
命名訊息路由規則
SiteWiseToCloudwatchAlarms
。 -
對於查詢,您可以使用下列項目:
SELECT * FROM '$aws/sitewise/asset-models/
your-asset-model-id
/assets/your-asset-id
/properties/your-property-id
' -
在規則動作中,選取要從 產生的資料傳送至 AWS IoT SiteWise CloudWatch 的 Lambda 動作。例如:
-
步驟 4:檢視 CloudWatch 指標
當您擷取資料至 AWS IoT SiteWise中稍早選取的 屬性步驟 1:在資產屬性上啟用 MQTT 通知時, 會將資料路由至我們在 中建立的 Lambda 函數步驟 2:建立 AWS Lambda 函數。在此步驟中,您可以檢查 以查看將指標傳送至 CloudWatch 的 Lambda。
-
在左側導覽中,選擇指標,然後選擇所有指標。
-
選擇警示的 URL 來開啟它。
-
在來源索引標籤下,CloudWatch 輸出看起來與此範例類似。此來源資訊會確認指標資料正在饋送至 CloudWatch。
{ "view": "timeSeries", "stacked": false, "metrics": [ [ "IoTSiteWise/AssetMetrics", "Property_
your-property-id-hash
", "Quality", "GOOD", "AssetId", "your-asset-id-hash
", { "id": "m1" } ] ], "region": "your-region
" }
步驟 5:建立 CloudWatch 警示
遵循《Amazon CloudWatch 使用者指南》中的根據靜態閾值程序建立 CloudWatch 警示,為每個相關指標建立警示。 Amazon CloudWatch
注意
Amazon CloudWatch 中有許多警示組態選項。如需 CloudWatch 警示的詳細資訊,請參閱Amazon CloudWatch 使用者指南》中的使用 Amazon CloudWatch 警示。 Amazon CloudWatch
步驟 6:(選用) 將 CloudWatch 警示匯入至 AWS IoT SiteWise
您可以設定 CloudWatch 警示, AWS IoT SiteWise 使用 CloudWatch 警示動作和 Lambda 將資料傳回至 。此整合可讓您在 SiteWise Monitor 入口網站中檢視警示狀態和屬性。
-
將外部警示設定為資產模型中的屬性。如需詳細資訊,請參閱AWS IoT SiteWise 《 使用者指南》中的在 中定義外部警示 AWS IoT SiteWise。
-
建立 Lambda 函數,使用AWS IoT SiteWise 《 使用者指南》中的 BatchPutAssetPropertyValue API 將警示資料傳送至 AWS IoT SiteWise。
-
設定 CloudWatch 警示動作,以在警示狀態變更時叫用 Lambda 函數。如需詳細資訊,請參閱《Amazon CloudWatch 使用者指南》中的警示動作一節。