基本的な取り込みによるメッセージングコストの削減 - AWS(AWS) IoT コア

英語の翻訳が提供されている場合で、内容が矛盾する場合には、英語版がオリジナルとして取り扱われます。翻訳は機械翻訳により提供されています。

基本的な取り込みによるメッセージングコストの削減

基本的な取り込みでは、AWS IoT ルールアクション でサポートされる AWS サービスにデバイスデータを安全に メッセージングコストを発生させることなく送信できます。基本的な取り込みでは、取り込みパスからパブリッシュ/サブスクライブのメッセージブローカーを除外することによってデータフローが最適化されるため、コスト効率が向上します。

基本的な取り込みを使用するには、最初の 3 つのレベルが $aws/rules/rule-name で始まるトピック名のデバイス、またはアプリケーションからメッセージを送信します。ここで、rule-name はトリガーする AWS IoT ルールの名前です。

基本的な取り込みのプレフィックス ($aws/rules/rule-name) を、ルールを普通にトリガーするメッセージのトピックに追加するだけで、既存のルールを基本的な取り込みで使用することができます。たとえば、Buildings/Building5/Floor2/Room201/Lights ("sql": "SELECT * FROM 'Buildings/#'") などのトピックでメッセージによってトリガーされる BuildingManager というルールがある場合、トピック $aws/rules/BuildingManager/Buildings/Building5/Floor2/Room201/Lights でメッセージを送信することで、基本的な取り込みで同じルールをトリガーできます。

次の点に注意してください。

  • デバイスとルールを基本的な取り込みの予約されたトピックにサブスクライブできません。詳細については、「予約済みトピック」を参照してください。

  • パブリッシュ/サブスクライブブローカーで複数の受信対象にメッセージを配信することが必要な場合 (たとえば、他のデバイスとルールエンジンにメッセージを配信する場合)、AWS IoT メッセージブローカーを引き続き使用してメッセージ配信を処理する必要があります。基本的な取り込みトピック以外のトピックにメッセージを発行するだけです。

基本的な取り込みの使用

デバイスまたはアプリケーションが ポリシー 公開権限を持つ $aws/rules/*。 または、 $aws/rules/rule-name/* 方針に盛り込まれています。それ以外の場合は、デバイスとアプリケーションは AWS IoT Core に対して既存の接続を引き続き使用できます。

メッセージがルールエンジンに到達すると、基本的な取り込みからトリガーされたルールと、メッセージブローカーサブスクリプションを通じてトリガーされたルールによる実行またはエラー処理に違いはありません。

もちろん、基本的な取り込みで使用するためのルールを作成できます。以下に留意してください。

  • 基本的な取り込みトピックの最初のプレフィックス ($aws/rules/rule-name) は topic(10 進数) 関数には使用できません。

  • 基本的な取り込みでのみトリガーされるルールを定義する場合、FROM 句は rule 定義の sql フィールドのオプションです。メッセージブローカーを使用してメッセージを送信する必要がある他のメッセージによりルールがトリガーされる場合でもまだ必要です (たとえば、他のメッセージが複数の受信対象に配信される必要があるからです)。詳細については、「AWS IoT SQL リファレンス」を参照してください。

  • 基本的な取り込みトピックの最初の 3 つのレベル ($aws/rules/rule-name) はトピックの 8 つのセグメント長制限または 256 文字の文字数制限にカウントされません。それ以外の場合は、「AWS IoT の制限」で説明されているように、同じ制限が適用されます。

  • 無効なルールまたは存在しないルールを指定する基本的な取り込みトピックでメッセージが受信された場合は、エラーログは Amazon CloudWatch ログに作成され、デバッグに利用できます。詳細については、「ルールエンジンのログエントリ」を参照してください。RuleNotFound メトリクスが表示され、このメトリクスでアラームを作成できます。詳細については、「ルールのメトリクス」の「ルールメトリクス」を参照してください。

  • この場合でも、基本的な取り込みトピックに QoS 1 で発行できます。メッセージが 1 回がルールエンジンに正常に配信された後、PUBACK を受信します。PUBACK の受信はルールのアクションが正常に完了したことを意味するわけではありません。エラーアクションを設定して、アクションの実行中にエラーを処理することができます。「エラー処理 (エラーアクション)」を参照してください)。