使用基本擷取減少簡訊費用 - AWS IoT Core

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

使用基本擷取減少簡訊費用

您可以使用 Basic Ingest,將裝置資料安全地傳送至 AWS 服務 支援的AWS IoT 規則動作,而不會產生訊息費用。基本擷取會從擷取路徑移除發佈/訂閱訊息代理程式,讓資料流程最佳化。

基本擷取可從您的裝置或應用程式傳送訊息。訊息的前三個層級具有以 $aws/rules/rule_name 開頭的主題名稱,其中 rule_name 是您要叫用的 AWS IoT 規則的名稱。

您可將基本擷取字首 ($aws/rules/rule_name) 新增至您用來叫用規則的訊息主題,即可搭配基本擷取使用現有的規則。例如,如果您有一個名為 BuildingManager 規則會透過 Buildings/Building5/Floor2/Room201/Lights ("sql": "SELECT * FROM 'Buildings/#'") 之類的訊息主題叫用,則您可以透過傳送主題為 $aws/rules/BuildingManager/Buildings/Building5/Floor2/Room201/Lights 的訊息,使用基本擷取叫用相同的規則。

請注意:

  • 您的裝置和規則無法訂閱基本擷取預留主題。如需詳細資訊,請參閱 預留主題

  • 如果需要發佈/訂閱Broker 才能將訊息分發給多位訂閱者 (例如,將訊息傳遞給其他裝置和規則引擎),您應該繼續使用 AWS IoT 訊息代理程式來處理訊息發佈。不過,請確認使用基本擷取主題以外的主題來發佈您的訊息。

使用基本擷取

在使用基本擷取之前,請驗證您的裝置或應用程式是否正在使用對 $aws/rules/* 具有發佈許可的政策。或者,您可以$aws/rules/rule_name/*在策略中為單個規則指定權限。除此之外,您的裝置和應用程式可以繼續使用他們與 AWS IoT Core 的現有連線。

當訊息抵達規則引擎時,從基本擷取叫用的規則和透過訊息代理程式訂閱叫用的規則,在實作或錯誤處理上就沒有差別。

您可以建立用於基本擷取的規則。請謹記以下幾點:

  • 基本擷取主題的初始字首 ($aws/rules/rule_name) 無法用於 topic(Decimal) 函數。

  • 如果您定義了只能由基本擷取叫用的規則,rule 定義中 sql 欄位的 FROM 子句則為選用。如果規則也需要由必須透過訊息代理程式傳送的其他訊息呼叫 (例如,因為那些其他訊息必須分配到多個訂閱者),則仍然會需要此項。如需詳細資訊,請參閱 AWS IoT SQL 參考資料

  • 首三個層級的基本擷取主題 ($aws/rules/rule_name) 不會算在主題的 8 區段長度或 256 個總字元限制中。除此之外,適用其他相同限制,如 AWS IoT 限制所述。

  • 如果收到的訊息包含「基本導入」主題,該主題指定了非作用中規則或不存在的規則,則會在 Amazon 日誌中建立錯誤 CloudWatch 日誌以協助您進行除錯。如需詳細資訊,請參閱 Rules engine 日誌項目。系統會指出 RuleNotFound 指標,讓您可以為此指標建立警示。如需詳細資訊,請參閱 規則指標 中的規則指標。

  • 您仍可使用 QoS 1 發佈基本擷取主題。訊息成功交付至規則引擎後,您就會收到 PUBACK。收到 PUBACK 不表示您的規則已經成功完成動作。您可以設定錯誤動作,以在動作執行時處理錯誤。如需更多詳細資訊,請參閱 錯誤處理 (錯誤動作)