翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
基本的な取り込みによるメッセージングコストの削減
Basic Ingest を使用すると、メッセージングコスト
基本的な取り込みでは、デバイスまたはアプリケーションからメッセージを送信できます。メッセージには、最初の 3 つのレベルに $aws/rules/
で始まるトピック名があり、ここで rule_name
は呼び出す AWS IoT ルールの名前です。rule_name
基本的な取り込みのプレフィックス ($aws/rules/
) を、ルールを呼び出すために使用するメッセージのトピックに追加するだけで、既存のルールを基本的な取り込みで使用することができます。例えば、rule_name
Buildings/Building5/Floor2/Room201/Lights
("sql": "SELECT * FROM
'Buildings/#'"
) などのトピックでメッセージによって呼び出される BuildingManager
という名前のルールがある場合、トピック $aws/rules/BuildingManager/Buildings/Building5/Floor2/Room201/Lights
でメッセージを送信することで、基本的な取り込みで同じルールを呼び出せます。
注記
-
デバイスとルールでは、基本的な取り込みの予約されたトピックをサブスクライブできません。例えば、 AWS IoT Device Defender メトリクス
num-messages-received
メトリクスはトピックのサブスクライブをサポートしていないため、出力されません。詳細については、「予約済みトピック」を参照してください。 -
複数のサブスクライバーにメッセージを配信する (他のデバイスやルールエンジンにメッセージを配信するなど) ために発行/サブスクライブブローカーが必要な場合は、 AWS IoT 引き続きメッセージブローカーを使用してメッセージ配信を処理する必要があります。しかし、基本的な取り込みトピック以外のトピックにメッセージを公開するようにしてください。
基本的な取り込みの使用
基本的な取り込みを使用する前に、デバイスまたはアプリケーションが、$aws/rules/*
に対する発行アクセス許可を持つポリシーを使用していることを確認してください。または、ポリシー$aws/rules/
で を使用して個々のルールのアクセス許可を指定できます。それ以外の場合は、デバイスとアプリケーションは AWS IoT Coreに対して既存の接続を引き続き使用できます。rule_name
/*
メッセージがルールエンジンに到達すると、基本的な取り込みから呼び出されたルールと、メッセージブローカーサブスクリプションを通じて呼び出されたルールによる実装またはエラー処理に違いはありません。
基本的な取り込みで使用するためのルールを作成できます。以下に留意してください。
-
基本的な取り込みトピックの最初のプレフィックス (
$aws/rules/
) は topic(10 進数) 関数には使用できません。rule_name
-
基本的な取り込みでのみ呼び出されるルールを定義する場合、
FROM
句はrule
定義のsql
フィールドのオプションです。これは、メッセージブローカーを使用してメッセージを送信する必要がある他のメッセージによりルールが呼び出される場合でも (例えば、他のメッセージが複数の受信対象に配信される必要があるため) 必要になります。詳細については、「AWS IoT SQL リファレンス」を参照してください。 -
基本的な取り込みトピックの最初の 3 つのレベル (
$aws/rules/
) はトピックの 8 つのセグメント長制限または 256 文字の文字数制限にカウントされません。それ以外の場合は、「AWS IoT の制限」で説明されているように、同じ制限が適用されます。rule_name
-
非アクティブなルールまたは存在しないルールを指定する基本取り込みトピックでメッセージを受信すると、デバッグに役立つエラーログが Amazon CloudWatch ログに作成されます。詳細については、「ルールエンジンのログエントリ」を参照してください。
RuleNotFound
メトリクスが表示され、このメトリクスでアラームを作成できます。詳細については、「ルールのメトリクス」の「ルールメトリクス」を参照してください。 -
この場合でも、基本的な取り込みトピックに QoS 1 で発行できます。メッセージがルールエンジンに正常に配信PUBACKされると、 が表示されます。を受信PUBACKしても、ルールアクションが正常に完了したわけではありません。エラーアクションを設定して、アクションの実行中にエラーを処理することができます。詳細については、「エラー処理 (エラーアクション)」を参照してください。