

支援終止通知：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 Events (AWS CLI) 中分析偵測器模型
<a name="analyze-api-api"></a>

以程式設計方式分析您的 AWS IoT Events 偵測器模型，可提供有關其結構、行為和效能的寶貴洞見。此 API 型方法允許自動化分析、與現有工作流程整合，以及跨多個偵測器模型執行大量操作的能力。透過利用 [StartDetectorModelAnalysis](https://docs.aws.amazon.com/iotevents/latest/apireference/API_StartDetectorModelAnalysis.html) API，您可以啟動模型的深入檢查、協助您識別潛在問題、最佳化邏輯流程，並確保您的 IoT 事件處理符合您的業務需求。

下列步驟使用 AWS CLI 來分析偵測器模型。

**使用 分析偵測器模型 AWS CLI**

1. 執行下列命令以開始分析。

   ```
   aws iotevents start-detector-model-analysis --cli-input-json file://file-name.json
   ```
**注意**  
將 *file-name* 取代為包含偵測器模型定義的檔案名稱。  
**Example 偵測器模型定義**  

   ```
   {
       "detectorModelDefinition": {
           "states": [
               {
                   "stateName": "TemperatureCheck",
                   "onInput": {
                       "events": [
                           {
                               "eventName": "Temperature Received",
                               "condition": "isNull($input.TemperatureInput.sensorData.temperature)==false",
                               "actions": [
                                   {
                                       "iotTopicPublish": {
                                           "mqttTopic": "IoTEvents/Output"
                                       }
                                   }
                               ]
                           }
                       ],
                       "transitionEvents": []
                   },
                   "onEnter": {
                       "events": [
                           {
                               "eventName": "Init",
                               "condition": "true",
                               "actions": [
                                   {
                                       "setVariable": {
                                           "variableName": "temperatureChecked",
                                           "value": "0"
                                       }
                                   }
                               ]
                           }
                       ]
                   },
                   "onExit": {
                       "events": []
                   }
               }
           ],
           "initialStateName": "TemperatureCheck"
       }
   }
   ```

   如果您使用 AWS CLI 來分析現有的偵測器模型，請選擇下列其中一項來擷取偵測器模型定義：
   + 如果您想要使用 AWS IoT Events 主控台，請執行下列動作：

     1. 在導覽窗格中，選擇**偵測器模型**。

     1. 在**偵測器模型**下，選擇目標偵測器模型。

     1. 從**動作**中選擇**匯出偵測器模型**，以下載偵測器模型。偵測器模型會儲存在 JSON 中。

     1. 開啟偵測器模型 JSON 檔案。

     1. 您只需要 `detectorModelDefinition` 物件。移除下列項目：
        + 頁面頂端的第一個大括號 (`{`)
        + 該`detectorModel`行
        + `detectorModelConfiguration` 物件
        + 頁面底部的最後一個大括號 (`}`)

     1. 儲存檔案。
   + 如果您想要使用 AWS CLI，請執行下列動作：

     1. 在終端機執行下列命令。

        ```
        aws iotevents describe-detector-model --detector-model-name detector-model-name
        ```

     1. 將 *detector-model-name* 取代為偵測器模型的名稱。

     1. 將`detectorModelDefinition`物件複製到文字編輯器。

     1. 在 之外新增大括號 (`{}`)`detectorModelDefinition`。

     1. 在 JSON 中儲存檔案。  
**Example 回應範例**  

   ```
   {
       "analysisId": "c1133390-14e3-4204-9a66-31efd92a4fed"
   }
   ```

1. 從輸出複製分析 ID。

1. 執行下列命令來擷取分析的狀態。

   ```
   aws iotevents describe-detector-model-analysis --analysis-id "analysis-id"
   ```
**注意**  
將 *analysis-id* 取代為您複製的分析 ID。  
**Example 回應範例**  

   ```
   {
       "status": "COMPLETE"
   }
   ```

   狀態可以是下列其中一個值：
   + `RUNNING` – AWS IoT Events 正在分析偵測器模型。此程序最多可能需要一分鐘才能完成。
   + `COMPLETE` – AWS IoT Events 已完成分析偵測器模型。
   + `FAILED` – AWS IoT Events 無法分析偵測器模型。請稍後再試。

1. 執行下列命令來擷取偵測器模型的一或多個分析結果。
**注意**  
將 *analysis-id* 取代為您複製的分析 ID。

   ```
   aws iotevents get-detector-model-analysis-results --analysis-id "analysis-id"
   ```  
**Example 回應範例**  

   ```
   {
       "analysisResults": [
           {
               "type": "data-type",
               "level": "INFO",
               "message": "Inferred data types [Integer] for $variable.temperatureChecked",
               "locations": []
           },
           {
               "type": "referenced-resource",
               "level": "ERROR",
               "message": "Detector Model Definition contains reference to Input 'TemperatureInput' that does not exist.",
               "locations": [
                   {
                       "path": "states[0].onInput.events[0]"
                   }
               ]
           }
       ]
   }
   ```

**注意**  
 AWS IoT Events 開始分析偵測器模型後，您有最多 24 小時的時間擷取分析結果。