AWS IoT Greengrass Version 1 は 2023 年 6 月 30 日に延長ライフフェーズに参加しました。詳細については、「AWS IoT Greengrass V1 メンテナンスポリシー」を参照してください。この日以降、 AWS IoT Greengrass V1 は機能、機能強化、バグ修正、またはセキュリティパッチを提供する更新をリリースしません。で実行されるデバイスは中断 AWS IoT Greengrass V1 されず、引き続き動作し、クラウドに接続します。に移行することを強くお勧めします。 AWS IoT Greengrass Version 2これにより、重要な新機能が追加され、プラットフォーム のサポートが追加されます。
翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
デプロイ通知の取得
Amazon EventBridge イベントルールを使用して、Greengrass グループのデプロイの状態変更に関する通知を受け取ることができます。EventBridge は AWS リソースの変更を示すシステムイベントをほぼリアルタイムでストリーミング配信します。AWS IoT Greengrass はこのイベント情報を、必ず 1 回は EventBridge に送信します。これは確実に配信を行うために、AWS IoT Greengrass から一定のイベントのコピーを複数送信する場合があるということです。さらに、イベントリスナーは、イベントが発生した順序でイベントを受信しない場合があります。
注記
Amazon EventBridge は、アプリケーションを Greengrass Core デバイスやデプロイ通知などのさまざまなソースのデータに接続するために使用できるイベントバスサービスです。詳細については、Amazon EventBridge ユーザーガイドの「Amazon EventBridge とは」を参照してください。
AWS IoT Greengrass は、グループデプロイの状態が変更されるとイベントを発行します。すべての状態遷移または指定した状態への移行に対して実行される EventBridge ルールを作成できます。デプロイがルールを開始する状態になると、EventBridge はルールで定義されたターゲットアクションを呼び出します。これにより、通知を送信したり、イベント情報をキャプチャしたり、修正アクションを実行したり、状態の変更に応じて他のイベントを開始したりできます。例えば、次のユースケースのルールを作成できます。
-
アセットのダウンロードや担当者の通知など、デプロイ後のオペレーションを開始します。
-
デプロイの成功または失敗時に通知を送信します。
-
デプロイイベントに関するカスタムメトリクスを発行します。
デプロイが、Building
、InProgress
、Success
、および Failure
状態になると、AWS IoT Greengrass はイベントを発行します。
注記
一括デプロイ オペレーションのステータスのモニタリングは、現在サポートされていません。ただし、AWS IoT Greengrass は、一括デプロイの一部である個別のグループデプロイの状態変更イベントを発行します。
グループデプロイステータスの変更イベント
デプロイ状態変更のイベントでは、次の形式を使用します。
{ "version":"0", "id":" cd4d811e-ab12-322b-8255-EXAMPLEb1bc8", "detail-type":"Greengrass Deployment Status Change", "source":"aws.greengrass", "account":"123456789012", "time":"2018-03-22T00:38:11Z", "region":"us-west-2", "resources":[], "detail":{ "group-id": "284dcd4e-24bc-4c8c-a770-EXAMPLEf03b8", "deployment-id": "4f38f1a7-3dd0-42a1-af48-EXAMPLE09681", "deployment-type": "NewDeployment|Redeployment|ResetDeployment|ForceResetDeployment", "status": "Building|InProgress|Success|Failure" } }
1 つ以上のグループに適用するルールを作成できます。次の 1 つ以上のデプロイタイプとデプロイの状態でルールをフィルタリングできます。
- デプロイタイプ
-
-
NewDeployment
。グループバージョンの最初のデプロイ。 -
ReDeployment
。グループバージョンの再デプロイ。 -
ResetDeployment
。AWS クラウド および AWS IoT Greengrass Core に保存されているデプロイ情報を削除します。詳細については、「デプロイのリセット」を参照してください。 -
ForceResetDeployment
。AWS クラウド に保存されているデプロイ情報を削除し、コアが応答するのを待たずに成功を報告します。また、コアが接続されている場合、または次に接続するときに、コアに保存されているデプロイ情報も削除します。
-
- デプロイの状態
-
-
Building
。AWS IoT Greengrass は、グループ設定を検証し、デプロイアーティファクトを構築しています。 -
InProgress
。デプロイが AWS IoT Greengrass Core で進行中です。 -
Success
。デプロイに成功しました。 -
Failure
。デプロイに失敗しました。
-
イベントが重複したり、順序が順不同である可能性があります。イベントの順序を決定するには、 time
プロパティを使用します。
注記
AWS IoT Greengrass は resources
プロパティを使用しないため、常に空です。
EventBridge ルールを作成するための前提条件
AWS IoT Greengrass に対する EventBridge ルールを作成する前に、以下を完了しておきます。
-
EventBridge のイベント、ルール、ターゲットに精通しておいてください。
-
EventBridge ルールによって呼び出されるターゲットを作成して設定します。ルールは、以下のようなさまざまなタイプのターゲットを呼び出すことができます。
-
Amazon Simple Notification Service (Amazon SNS)
-
AWS Lambda 関数
-
Amazon Kinesis Video Streams
-
Amazon Simple Queue Service (Amazon SQS) キュー
-
詳細については、Amazon EventBridge ユーザーガイドの「 Amazon EventBridge とは」および「Amazon EventBridge の開始方法」を参照してください。
デプロイ通知の設定 (コンソール)
グループのデプロイ状態が変更されたときに Amazon SNS トピックを発行する EventBridge ルールを作成するには、次のステップを使用します。これにより、ウェブサーバー、E メールアドレス、その他のトピック受信者がイベントに応答できるようになります。ルールの作成方法の詳細については、「Amazon EventBridge ユーザーガイド」の「AWS リソースのイベントでトリガーする EventBridge ルールを作成する」を参照してください 。
-
[Amazon EventBridge console]
(Amazon EventBridge コンソール) を開きます。 -
ナビゲーションペインで [Rules] (ルール) を選択します。
-
[Create rule] (ルールの作成) を選択します。
-
ルールの名前と説明を入力します。
ルールには、同じリージョン内および同じイベントバス上の別のルールと同じ名前を付けることはできません。
-
[Event bus] (イベントバス) では、このルールに関連付けるイベントバスを選択します。このルールをアカウントからのイベントと一致させるには、AWS のデフォルトのイベントバスを選択します。アカウントの AWS サービスがイベントを発行すると、常にアカウントのデフォルトのイベントバスに移動します。
-
[Rule type] (ルールタイプ) では、[Rule with an event pattern] (イベントパターンを持つルール) を選択します。
-
[Next] を選択します。
-
[Event source] (イベントソース) では、AWS[services] (サービス) を選択します。
-
[Event pattern] (イベントパターン)には、[AWS services](AWS サービス) を選択します。
-
[AWS service] (AWS サービス) で [Greengrass] を選択します。
-
[Event type (イベントタイプ)] で [Greengrass Deployment Status Change (Greengrass デプロイステータスの変更)] を選択します。
注記
[AWS API Call via CloudTrail] (CloudTrail 経由の AWS API 呼び出し) イベントタイプは、AWS IoT Greengrass と AWS CloudTrail の統合に基づいています。このオプションを使用すると、AWS IoT Greengrass API への読み取りまたは書き込みの呼び出しによって開始されるルールを作成できます。詳細については、「AWS IoT Greengrass による AWS CloudTrail API コールのログ記録」を参照してください。
-
通知を開始するデプロイ状態を選択します。
-
すべての状態変更イベントの通知を受信するには、[Any state (すべての状態)] を選択します。
-
一部の状態変更イベントの通知のみを受信するには、[Specific state(s) (特定の状態)] を選択してから、対象となる状態を選択します。
-
-
通知を開始するデプロイタイプを選択します。
-
すべてのデプロイタイプの通知を受信するには、[Any state (すべての状態)] を選択します。
-
一部のデプロイタイプの通知のみを受信するには、[Specific state(s) (特定の状態)] を選択してから、対象となるデプロイタイプを選択します。
-
-
[Next] を選択します。
-
[Target types] (ターゲットタイプ) では、AWS[services] (サービス) を選択します。
-
[Select targets] (ターゲットの選択) で、ターゲットを設定します。この例では Amazon SNS トピックを使用していますが、通知を送信するターゲットタイプには他のトピックも設定できます。
-
[Target] (ターゲット) で [SNS topic] (SNS トピック) を選択します。
-
[Topic (トピック)] で、ターゲットトピックを選択します。
-
[Next] を選択します。
-
-
[Tags] (タグ) で、ルールのタグを定義するか、フィールドを空のままにします。
-
[Next] を選択します。
-
ルールの詳細を確認し、[Create rule] (ルールの作成) を選択します。
デプロイ通知の設定 (CLI)
グループのデプロイ状態が変更されたときに Amazon SNS トピックを発行する EventBridge ルールを作成するには、次のステップを使用します。これにより、ウェブサーバー、E メールアドレス、その他のトピック受信者がイベントに応答できるようになります。
-
ルールを作成します。
-
group-id
を AWS IoT Greengrass グループの ID に置き換えます。
aws events put-rule \ --name TestRule \ --event-pattern "{\"source\": [\"aws.greengrass\"], \"detail\": {\"group-id\": [\"
group-id
\"]}}"パターンで省略されたプロパティは無視されます。
-
-
トピックをルールターゲットとして追加します。
-
topic-arn
を Amazon SNS トピックの ARN に置き換えます。
aws events put-targets \ --rule TestRule \ --targets "Id"="1","Arn"="
topic-arn
"注記
Amazon EventBridge にターゲットトピックの呼び出しを許可するには、トピックにリソースベースのポリシーを追加する必要があります。詳細については、Amazon EventBridge ユーザーガイドの「Amazon SNS のアクセス許可」を参照してください。
-
詳細については、Amazon EventBridge ユーザーガイドの「EventBridge のイベントとイベントパターン」を参照してください。
デプロイ通知の設定 (AWS CloudFormation)
AWS CloudFormation テンプレートを使用して、Greengrass グループのデプロイの状態変更に関する通知を送信する EventBridge ルールを作成します。詳細については、「AWS CloudFormation ユーザーガイド」の「Amazon EventBridge リソースタイプのリファレンス」を参照してください。
以下も参照してください。
-
「Amazon EventBridge ユーザーガイド」の「Amazon EventBridge とは」