

支援終止通知：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 監控您的 IoT 裝置
<a name="iotevents-how-to-use"></a>

您可以使用 AWS IoT Events 來監控裝置或程序，並根據重大事件採取行動。若要這麼做，請依照下列基本步驟進行：

**建立輸入**  
您必須有一種方式，您的裝置和程序才能取得遙測資料 AWS IoT Events。您可以透過將訊息做為*輸入*傳送到 來執行此操作 AWS IoT Events。您可以透過多種方式將訊息做為輸入來傳送：  
+ 使用 [ BatchPutMessage](https://docs.aws.amazon.com/iotevents/latest/apireference/API_iotevents-data_BatchPutMessage.html) 操作。
+ 定義[`iotEvents`規則引擎的規則動作](https://docs.aws.amazon.com/iot/latest/developerguide/iotevents-rule-action.html)。 [AWS IoT Core](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rule-actions.html)規則動作會將您輸入的訊息資料轉送至 AWS IoT Events。
+ 在 中 AWS IoT Analytics，使用 [CreateDataset](https://docs.aws.amazon.com/iotanalytics/latest/userguide/automate.html#aws-iot-analytics-automate-create-dataset) 操作建立具有 的資料集`contentDeliveryRules`。這些規則會指定自動傳送資料集內容的 AWS IoT Events 輸入。
+ 在 AWS IoT Events 偵測器模型的 `onInput`、 `onExit`或 `transitionEvents`事件中定義 [iotEvents 動作](https://docs.aws.amazon.com/iotevents/latest/apireference/API_IotEventsAction.html)。偵測器模型執行個體和啟動動作之事件的相關資訊，會以您指定的名稱做為輸入傳回系統。
在您的裝置以這種方式開始傳送資料之前，您必須定義一或多個輸入。若要這樣做，請為每個輸入命名，並指定輸入監視器在傳入訊息資料中的哪些欄位。 會從許多來源 AWS IoT Events 以 JSON 承載的形式接收其輸入。每個輸入都可以單獨使用，也可以與其他輸入結合，以偵測更複雜的事件。

**建立偵測器模型**  
使用 *狀態*定義*偵測器模型* （設備或程序的模型）。針對每個狀態，您可以定義評估傳入輸入的條件 (布林值) 邏輯，以偵測重大事件。偵測到事件時，可以變更狀態，或使用其他 AWS 服務啟動自訂建置或預先定義的動作。您可以定義其他事件，在進入或退出狀態時啟動動作，也可以選擇在符合條件時啟動動作。  
在本教學課程中，您會在模型進入或退出特定狀態時傳送 Amazon SNS 訊息做為動作。

**監控裝置或程序**  
如果您正在監控多個裝置或程序，請在每個輸入中指定欄位，以識別輸入來源的特定裝置或程序。（請參閱 中的 `key` 欄位`CreateDetectorModel`。) 識別新裝置時 （在由 識別的輸入欄位中看到新值`key`)，會建立偵測器。（每個偵測器都是偵測器模型的執行個體。) 然後，新的偵測器會繼續回應來自該裝置的輸入，直到其偵測器模型更新或刪除為止。  
如果您正在監控單一程序 （即使有多個裝置或子程序正在傳送輸入），則不會指定唯一的識別`key`欄位。在此情況下，會在第一個輸入到達時建立單一偵測器 （執行個體）。

**將訊息做為輸入傳送到偵測器模型**  
有幾種方式可以從裝置或程序傳送訊息，做為 AWS IoT Events 偵測器的輸入，而不需要您對訊息執行其他格式設定。在本教學課程中，您會使用 AWS IoT 主控台為轉送訊息資料的 AWS IoT Core 規則引擎撰寫[AWS IoT Events 動作](https://docs.aws.amazon.com/iot/latest/developerguide/iot-rule-actions.html#iotevents-rule)規則 AWS IoT Events。若要這樣做，您可以依名稱識別輸入。然後，您繼續使用 AWS IoT 主控台來產生一些做為輸入轉送的訊息 AWS IoT Events。

## 如何知道偵測器模型中需要哪些狀態？
<a name="how-to-use-iotevents-what-states"></a>

若要判斷偵測器模型應有的狀態，請先決定您可以採取的動作。例如，如果您的汽車在油品上執行，您會在開始行程時查看油量計，以查看是否需要重新注油。您在這裡有一個動作：告知驅動程式「取得瓦斯」。您的偵測器模型需要兩種狀態：「汽車不需要燃料」和「汽車需要燃料」。一般而言，您想要為每個可能的動作定義一個狀態，以及在不需要動作時再定義一個狀態。即使動作本身更複雜，這也有效。例如，您可能想要查詢並包含尋找最接近的瓦斯站或最便宜價格的資訊，但當您傳送訊息到「取得瓦斯」時，就會這樣做。

若要決定接下來要進入的狀態，您可以查看輸入。輸入包含決定您應處於何種狀態所需的資訊。若要建立輸入，請在裝置或程序傳送的訊息中選取一或多個欄位，以協助您做出決定。在此範例中，您需要一個輸入，告訴您目前的油位 (「百分比滿」)。也許您的汽車正在傳送數個不同的訊息給您，每個訊息都有數個不同的欄位。若要建立此輸入，您必須選取報告目前瓦斯表關卡的訊息和欄位。您即將進行的旅程長度 (「距離目的地」) 可以進行硬式編碼，以保持簡單；您可以使用平均旅程長度。您將根據輸入進行一些計算 （該百分比完全轉譯多少 gallons？ 是大於您可以行駛之英里的平均行程長度，取決於您擁有的 gallons 和您的平均 "miles per gallon")。您會執行這些計算並在*事件*中傳送訊息。

到目前為止，您有兩個狀態和一個輸入。您需要處於第一個狀態的事件，該事件會根據輸入執行計算，並決定是否要進入第二個狀態。這是一個轉換事件。 (`transitionEvents` 位於狀態`onInput`的事件清單中。 收到處於此第一個狀態的*輸入**時*，如果`condition`符合事件的 ，*事件*會執行*轉換為*第二個狀態。) 當您達到第二個狀態時，您會在進入 狀態後立即傳送訊息。（您使用 `onEnter`事件。 進入第二個狀態時，此事件會傳送訊息。 不需要等待另一個輸入到達。) 還有其他類型的事件，但這只是簡單範例所需的。

其他類型的事件是 `onExit`和 `onInput`。一旦收到輸入並符合條件，`onInput`事件就會執行指定的動作。當操作結束其目前狀態且符合條件時，`onExit`事件會執行指定的動作。

您有任何遺漏嗎？ 是，如何回到第一個「汽車不需要燃料」狀態？ 填滿您的坦克之後，輸入會顯示已滿的坦克。在第二個狀態下，您需要轉換事件回到接收輸入時 （在第二個狀態`onInput:`的事件中） 發生的第一個狀態。如果其計算結果顯示您現在有足夠的瓦斯可以讓您前往目的地，則它應該會轉返到第一個狀態。

這就是基本概念。有些偵測器模型透過新增可反映重要輸入的狀態來變得更複雜，而不只是可能的動作。例如，您可能在偵測器模型中有三種狀態，可追蹤溫度：「正常」狀態、「過熱」狀態，以及「潛在問題」狀態。當溫度超過特定層級，但尚未變得過熱時，您會轉換為潛在問題狀態。除非警示保持在此溫度超過 15 分鐘，否則您不想傳送警示。如果在此之前溫度恢復正常，偵測器會轉換回正常狀態。如果計時器過期，偵測器會轉換為過熱狀態並傳送警示，只是要小心。您可以使用變數和一組更複雜的事件條件來執行相同的動作。但通常使用另一個狀態來儲存計算結果會比較容易。

## 如何得知您需要一個或數個偵測器的執行個體？
<a name="how-to-use-iotevents-instances"></a>

若要決定您需要多少執行個體，請自問「您有興趣知道什麼？」 假設您想要知道今天天氣如何。是否下雨 （狀態）？ 您需要使用雨傘 （動作） 嗎？ 您可以有一個報告溫度的感應器、另一個報告濕度的感應器，以及其他報告大氣壓力、風速和方向以及降水的感應器。但是，您必須同時監控所有這些感應器，以判斷天氣狀態 （雨水、雪水、過度投射、陽光） 和要採取的適當動作 （拿雨傘或擦太陽霜）。儘管感應器數量有限，您希望一個偵測器執行個體監控天氣狀態，並通知您要採取的動作。

但是，如果您是區域的天氣預測器，則可能會有多個此類感應器陣列的執行個體，位於整個區域的不同位置。每個位置的人員都需要知道該位置的天氣狀況。在這種情況下，您需要偵測器的多個執行個體。每個位置中每個感應器報告的資料必須包含您指定為 欄位`key`的欄位。此欄位可讓 AWS IoT Events 建立區域的偵測器執行個體，然後在偵測器執行個體持續到達時，繼續將此資訊路由至該偵測器執行個體。不再有受損的頭髮或太陽鼻涕！

基本上，如果您有一個情況 （一個程序或一個位置） 需要監控，則需要一個偵測器執行個體。如果您有許多需要監控的情況 （位置、程序），則需要多個偵測器執行個體。