

支援終止通知：2026 年 5 月 20 日， AWS 將終止對 的支援 AWS IoT Events。2026 年 5 月 20 日之後，您將無法再存取 AWS IoT Events 主控台或 AWS IoT Events 資源。如需詳細資訊，請參閱[AWS IoT Events 終止支援](https://docs.aws.amazon.com/iotevents/latest/developerguide/iotevents-end-of-support.html)。

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

# 中的 AWS IoT SiteWise 警示遷移程序 AWS IoT Events
<a name="eos-procedure-alarms"></a>

本節說明替代解決方案，可在您遷移時提供類似的警示功能 AWS IoT Events。

對於使用 AWS IoT Events 警示的 AWS IoT SiteWise 屬性，您可以使用 CloudWatch 警示遷移至解決方案。此方法透過已建立的 SLAs 和其他功能提供強大的監控功能，例如異常偵測和分組警示。

## 比較架構
<a name="eos-architecture-comparison-alarms"></a>

屬性目前的 AWS IoT Events 警示組態 AWS IoT SiteWise 需要在資產模型`AssetModelCompositeModels`中建立 ，如*AWS IoT SiteWise 《 使用者指南*》中的在 [中定義外部警示 AWS IoT SiteWise](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/define-external-alarms.html)中所述。對新解決方案的修改通常透過 主控台進行 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 通知
<a name="eos-alarms-mqtt-asset-property"></a>

如果您使用 AWS IoT SiteWise 警示的 AWS IoT Events 整合，您可以為要監控的每個屬性開啟 MQTT 通知。

1. 遵循[程序中的資產設定警示 AWS IoT SiteWise](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/configure-alarms.html#configure-alarm-threshold-value-console)，直到您完成**編輯**資產模型屬性的每個步驟。

1. 對於每個要遷移的屬性，請將 **MQTT 通知狀態**變更為 **ACTIVE**。  
![\[螢幕擷取畫面，顯示 AWS IoT SiteWise 主控台中 MQTT 通知狀態下拉式清單的位置。\]](http://docs.aws.amazon.com/zh_tw/iotevents/latest/developerguide/images/events-eos-sw-asset-mqtt.png)

1. 請注意警示針對每個修改的警示屬性發佈的主題路徑。

如需詳細資訊，請參閱下列文件資源：
+ *AWS IoT SiteWise 《 使用者指南*[》中的了解 MQTT 主題中的資產屬性](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/mqtt-topics.html)。
+ 《 *AWS IoT 開發人員指南*》中的 [MQTT 主題](https://docs.aws.amazon.com/iot/latest/developerguide/topics.html)。

## 步驟 2：建立 AWS Lambda 函數
<a name="eos-alarms-lambda-function"></a>

建立 Lambda 函數以讀取 MQTT 主題發佈的 TQV 陣列，並將個別值發佈至 CloudWatch。我們將使用此 Lambda 函數作為在 AWS IoT Core 訊息規則中觸發的目的地動作。

1. 開啟 [AWS Lambda console](https://console.aws.amazon.com/lambda)。

1. 選擇**建立函數**。

1. 輸入**函數名稱的名稱**。

1. 選取 **NodeJS 22.x **做為**執行時間**。

1. 在**變更預設執行角色**下拉式清單中，選擇**使用現有角色**，然後選取您在先前步驟中建立的 IAM 角色。
**注意**  
此程序假設您已遷移偵測器模型。如果您沒有 IAM 角色，請參閱 [](eos-procedure-detector-models.md#eos-detector-model-create-iam-role)。

1. 選擇**建立函數**。

1. 在取代硬式編碼常數後，貼上下列程式碼片段。

   ```
   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 訊息路由規則
<a name="eos-alarms-message-routing"></a>
+ 遵循[教學課程：重新發佈 MQTT 訊息程序，](https://docs.aws.amazon.com/iot/latest/developerguide/iot-repub-rule.html)在出現提示時輸入下列資訊：

  1. 命名訊息路由規則 `SiteWiseToCloudwatchAlarms`。

  1. 對於查詢，您可以使用下列項目：

     ```
     SELECT * FROM '$aws/sitewise/asset-models/your-asset-model-id/assets/your-asset-id/properties/your-property-id'
     ```

  1. 在**規則動作**中，選取 **Lambda** 動作，將產生的資料 AWS IoT SiteWise 從 傳送至 CloudWatch。例如：  
![\[螢幕擷取畫面，顯示 Lambda 函數的規則動作。\]](http://docs.aws.amazon.com/zh_tw/iotevents/latest/developerguide/images/events-eos-lambda-rule-action.png)

## 步驟 4：檢視 CloudWatch 指標
<a name="eos-alarms-metrics"></a>

當您將資料擷取至 中稍早選取的 AWS IoT SiteWise屬性[步驟 1：在資產屬性上啟用 MQTT 通知](#eos-alarms-mqtt-asset-property)時， 會將資料路由至我們在 中建立的 Lambda 函數[步驟 2：建立 AWS Lambda 函數](#eos-alarms-lambda-function)。在此步驟中，您可以檢查 以查看將指標傳送至 CloudWatch 的 Lambda。

1. 開啟 [CloudWatch AWS 管理主控台](https://console.aws.amazon.com/cloudwatch/)。

1. 在左側導覽中，選擇**指標**，然後選擇**所有指標**。

1. 選擇警示的 URL 來開啟它。

1. 在**來源**索引標籤下，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 警示
<a name="eos-create-cw-alarm"></a>

遵循《Amazon [ CloudWatch 使用者指南》中的根據靜態閾值程序建立](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html) CloudWatch 警示，為每個相關指標建立警示。 *Amazon CloudWatch * 

**注意**  
Amazon CloudWatch 中有許多警示組態選項。如需 CloudWatch 警示的詳細資訊，請參閱[Amazon CloudWatch 使用者指南》中的使用 Amazon CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。 *Amazon CloudWatch *

## 步驟 6：（選用） 將 CloudWatch 警示匯入至 AWS IoT SiteWise
<a name="eos-import-cw-alarm-sw"></a>

您可以設定 CloudWatch 警示， AWS IoT SiteWise 使用 CloudWatch 警示動作和 Lambda 將資料傳回至 。此整合可讓您在 SiteWise Monitor 入口網站中檢視警示狀態和屬性。

1. 將外部警示設定為資產模型中的屬性。如需詳細資訊，請參閱*AWS IoT SiteWise 《 使用者指南》*中的在 [中定義外部警示 AWS IoT SiteWise](https://docs.aws.amazon.com/iot-sitewise/latest/userguide/define-external-alarms.html)。

1. 建立 Lambda 函數，使用*AWS IoT SiteWise 《 使用者指南*》中的 [BatchPutAssetPropertyValue](https://docs.aws.amazon.com/iot-sitewise/latest/APIReference/API_BatchPutAssetPropertyValue.html) API 將警示資料傳送至 AWS IoT SiteWise。

1. 設定 CloudWatch 警示動作，以在警示狀態變更時叫用 Lambda 函數。如需詳細資訊，請參閱《*Amazon CloudWatch 使用者指南*》中的[警示動作](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html#alarms-and-actions.html)一節。