使用 HTTP 主題規則目的地 - AWS IoT Core

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

使用 HTTP 主題規則目的地

HTTP 主題規則目的地是規則引擎可以從主題規則路由資料的 Web 服務。資 AWS IoT Core 源描述的 Web 服務 AWS IoT。主題規則目標資源可以由不同的規則共用。

在 AWS IoT Core 可以將數據發送到另一個 Web 服務之前,它必須確認它可以訪問該服務的端點。

HTTP 主題規則目的地概觀

HTTP 主題規則目的地是指支援確認 URL 和一或多個資料收集 URL 的 Web 服務。HTTP 主題規則目的地資源包含 Web 服務的確認 URL。設定 HTTP 主題規則動作時,指定應接收資料的端點的實際 URL 以及 Web 服務的確認 URL。在確認了您的目的地之後,主題規則會將 SQL 陳述式的結果傳送至 HTTPS 端點 (而非確認 URL)。

HTTP 主題規則目的地可以處於下列其中一種狀態:

ENABLED

目的地已確認,且可由規則動作使用。目的地必須處於 ENABLED 狀態,才能在規則中使用它。您只能啟用處於 DISABLED 狀態的目的地。

DISABLED

目的地已確認,但無法由規則動作使用。如果您想暫時防止流量傳至端點,而不必再次進行確認程序,這會很有用。您只能停用處於 ENABLED 狀態的目的地。

IN_PROGRESS

正在確認目的地。

ERROR

目的地確認逾時。

在確認並啟用 HTTP 主題規則目的地之後,即可在帳戶中搭配任何規則使用此目的地。

下列各節說明有關 HTTP 主題規則目的地的常見動作。

建立 HTTP 主題規則目的地

您可以呼叫 CreateTopicRuleDestination 操作或使用 AWS IoT 主控台來建立 HTTP 主題規則目的地。

建立目的地後, AWS IoT 會傳送確認要求至確認 URL。確認請求的格式如下:

HTTP POST {confirmationUrl}/?confirmationToken={confirmationToken} Headers: x-amz-rules-engine-message-type: DestinationConfirmation x-amz-rules-engine-destination-arn:"arn:aws:iot:us-east-1:123456789012:ruledestination/http/7a280e37-b9c6-47a2-a751-0703693f46e4" Content-Type: application/json Body: { "arn":"arn:aws:iot:us-east-1:123456789012:ruledestination/http/7a280e37-b9c6-47a2-a751-0703693f46e4", "confirmationToken": "AYADeMXLrPrNY2wqJAKsFNn-…NBJndA", "enableUrl": "https://iot.us-east-1.amazonaws.com/confirmdestination/AYADeMXLrPrNY2wqJAKsFNn-…NBJndA", "messageType": "DestinationConfirmation" }

確認請求的內容包含下列資訊:

arn

要確認的主題規則目的地的 Amazon 資源名稱 (ARN)。

confirmationToken

由傳送的確認權杖 AWS IoT Core。範例中的字符會被截斷。您的字符將更長。您將需要此令牌來確認您的目的地 AWS IoT Core。

enableUrl

您瀏覽以確認主題規則目的地的 URL。

messageType

訊息的類型。

確認 HTTP 主題規則目的地

若要完成端點確認程序,如果您使用的是 AWS CLI,您必須在確認 URL 收到確認要求後執行下列步驟。

  1. 確認目的地願意接收訊息

    若要確認主題規則目標是否願意接收 IoT 訊息,請enableUrl在確認要求中呼叫,或執行 ConfirmTopicRuleDestination API 作業並confirmationToken從確認要求傳遞。

  2. 將主題規則狀態設定為已啟用

    確認目的地可以接收訊息之後,您必須執行 UpdateTopicRuleDestination API 作業,將主題規則的狀態設定為ENABLED

如果您使用的是 AWS IoT 主機,請複製confirmationToken並貼到主控 AWS IoT 台的目的地確認對話方塊中。然後,您可以啟用主題規則。

傳送新的確認請求

若要啟動目的地的新確認訊息,請呼叫 UpdateTopicRuleDestination,並將主題規則目的地的狀態設為 IN_PROGRESS

在傳送新的確認請求之後重複確認程序。

停用和刪除主題規則目的地

若要停用目的地,請呼叫 UpdateTopicRuleDestination,並將主題規則目的地的狀態設為 DISABLED。處於 DISABLED 狀態的主題規則可以再次啟用,無需傳送新的確認請求。

若要刪除主題規則目的地,請呼叫 DeleteTopicRuleDestination