翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Amazon SNS
Amazon SNSコンポーネント (aws.greengrass.SNS
) は、Amazon Simple Notification Service (Amazon SNS) トピックにメッセージを発行します。このコンポーネントを使用して、Greengrass コアデバイスから Web サーバー、E メールアドレス、その他のメッセージサブスクライバーにイベントを送信できます。詳細については、「Amazon Simple Notification Service デベロッパーガイド」の「Amazon SNSとは」を参照してください。
このコンポーネントを使用して Amazon SNSトピックに発行するには、このコンポーネントがサブスクライブするトピックにメッセージを発行します。デフォルトでは、このコンポーネントは sns/message
ローカルパブリッシュ/サブスクライブトピックにサブスクライブします。このコンポーネントをデプロイするときに、トピックを含む AWS IoT Core MQTT他のトピックを指定できます。
カスタムコンポーネントでは、このコンポーネントに公開する前に、他のソースからのメッセージを処理するために、フィルタリングまたは書式設定ロジックを実装することができます。これにより、メッセージ処理ロジックを 1 つのコンポーネントに一元化できます。
注記
このコンポーネントは、 AWS IoT Greengrass V1 の Amazon SNS コネクタと同様の機能を提供します。詳細については、AWS IoT Greengrass 「 V1 デベロッパーガイド」の「Amazon SNS コネクタ」を参照してください。
バージョン
このコンポーネントには、次のバージョンがあります。
-
2.1.x
-
2.0.x
タイプ
このコンポーネントは Lambda コンポーネントです (aws.greengrass.lambda
)。Greengrass nucleus は、Lambda ランチャーコンポーネントを使用してこのコンポーネントの Lambda 関数を実行します。
詳細については、「コンポーネントタイプ」を参照してください。
オペレーティングシステム
このコンポーネントは、Linux コアデバイスにのみインストールできます。
要件
このコンポーネントには次の要件があります。
-
コアデバイスは、Lambda 関数を実行するための要件を満たしている必要があります。コアデバイスが、コンテナ化された Lambda 関数を実行させる場合、そのデバイスは要件を満たす必要があります。詳細については、「Lambda 関数の要件」を参照してください。
-
Python
バージョン 3.7 がコアデバイスにインストールされ、 PATH 環境変数に追加されました。 -
Amazon SNSトピック。詳細については、「Amazon Simple Notification Service デベロッパーガイド」の「Amazon SNSトピックの作成」を参照してください。
-
次のIAMポリシー例に示すように、Greengrass デバイスロールは
sns:Publish
アクションを許可する必要があります。{ "Version": "2012-10-17", "Statement": [ { "Action": [ "sns:Publish" ], "Effect": "Allow", "Resource": [ "arn:aws:sns:
region
:account-id
:topic-name
" ] } ] }このコンポーネントの入力メッセージペイロードのデフォルトトピックを動的にオーバーライドできます。アプリケーションがこの機能を使用する場合、IAMポリシーにはすべてのターゲットトピックをリソースとして含める必要があります。リソースにきめ細かいアクセス権限または条件付きアクセス権限を付与できます (たとえば、ワイルドカード
*
命名スキームを使用)。 -
このコンポーネントから出力データを受信するには、このコンポーネントをデプロイするときに、次の設定更新プログラムをレガシーサブスクリプションルーターのコンポーネント (
aws.greengrass.LegacySubscriptionRouter
) のためにマージする必要があります。この設定は、このコンポーネントがレスポンスを公開するトピックを指定します。詳細については、「デプロイの作成」を参照してください。
-
Amazon SNSコンポーネントは、 での実行がサポートされていますVPC。このコンポーネントを にデプロイするにはVPC、以下が必要です。
-
Amazon SNSコンポーネントには、VPCエンドポイントが
sns.region.amazonaws.com
である への接続が必要ですcom.amazonaws.us-east-1.sns
。
-
エンドポイントおよびポート
このコンポーネントは、基本的な操作に必要なエンドポイントとポートに加えて、次のエンドポイントとポートに対し、アウトバウンドリクエストを実行できる必要があります。詳細については、「プロキシまたはファイアウォールを介したデバイストラフィックを許可する」を参照してください。
エンドポイント | [ポート] | 必要 | 説明 |
---|---|---|---|
|
443 | あり |
Amazon にメッセージを発行しますSNS。 |
依存関係
コンポーネントをデプロイすると、 はその依存関係の互換性のあるバージョン AWS IoT Greengrass もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソール
コンポーネントの依存関係の詳細については、「コンポーネント recipe のリファレンス」を参照してください。
構成
このコンポーネントには、コンポーネントのデプロイ時にカスタマイズできる次の設定パラメータが用意されています。
注記
このコンポーネントのデフォルト設定には、Lambda 関数のパラメータが含まれます。デバイスにこのコンポーネントを設定するには、次のパラメータのみを編集することをお勧めします。
lambdaParams
-
このコンポーネントの Lambda 関数のパラメータを含むオブジェクト。このオブジェクトには、次の情報が含まれます。
EnvironmentVariables
-
Lambda 関数のパラメータを含むオブジェクト。このオブジェクトには、次の情報が含まれます。
DEFAULT_SNS_ARN
-
このコンポーネントがメッセージを発行するデフォルトの Amazon SNSトピックARNの 。入力メッセージペイロードの
sns_topic_arn
プロパティを使用して、宛先トピックをオーバーライドできます。
containerMode
-
(オプション) このコンポーネントのコンテナ化モード。次のオプションから選択します。
-
NoContainer
- コンポーネントは、分離されたランタイム環境では実行されません。 -
GreengrassContainer
– コンポーネントは、 AWS IoT Greengrass コンテナ内の分離されたランタイム環境で実行されます。
デフォルト:
GreengrassContainer
-
containerParams
-
(オプション) このコンポーネントのコンテナパラメータを含むオブジェクト。
containerMode
のGreengrassContainer
を指定した場合、コンポーネントはこれらのパラメータを使用します。このオブジェクトには、次の情報が含まれます。
memorySize
-
(オプション) コンポーネントに割り当てるメモリ量 (KB 単位)。
デフォルトは 512 MB (525,312 KB) です。
pubsubTopics
-
(オプション) コンポーネントがメッセージを受信するためにサブスクライブするトピックを含むオブジェクト。各トピックと、コンポーネントが からMQTTトピックをサブスクライブするか、ローカルのパブリッシュ/サブスクライブトピック AWS IoT Core をサブスクライブするかを指定できます。
このオブジェクトには、次の情報が含まれます。
0
- これは文字列としての配列インデックスです。-
次の情報が含まれるオブジェクト。
type
-
(オプション) このコンポーネントがメッセージをサブスクライブするために使用するパブリッシュ/サブスクライブメッセージングのタイプ。次のオプションから選択します。
-
PUB_SUB
- ローカルのパブリッシュ/サブスクライブメッセージをサブスクライブします。このオプションを選択した場合、トピックにMQTTワイルドカードを含めることはできません。このオプションを指定したときに、カスタムコンポーネントからメッセージを送信する方法の詳細については、「ローカルメッセージをパブリッシュ/サブスクライブする」を参照してください。 -
IOT_CORE
– メッセージをサブスクライブします AWS IoT Core MQTT。このオプションを選択すると、トピックにMQTTワイルドカードを含めることができます。このオプションを指定したときに、カスタムコンポーネントからメッセージを送信する方法の詳細については、「メッセージの発行/サブスクライブ AWS IoT Core MQTT 」を参照してください。
デフォルト:
PUB_SUB
-
topic
-
(オプション) コンポーネントがメッセージを受信するためにサブスクライブするトピック。
IotCore
に を指定する場合はtype
、このトピックでMQTTワイルドカード (+
および#
) を使用できます。
例: 設定マージの更新 (コンテナモード)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "GreengrassContainer" }
例: 設定マージの更新 (コンテナモードなし)
{ "lambdaExecutionParameters": { "EnvironmentVariables": { "DEFAULT_SNS_ARN": "arn:aws:sns:us-west-2:123456789012:mytopic" } }, "containerMode": "NoContainer" }
入力データ
このコンポーネントは、次のトピックのメッセージを受け入れ、ターゲット Amazon SNSトピックにそのままメッセージを発行します。デフォルトで、このコンポーネントはローカルのパブリッシュ/サブスクライブメッセージにサブスクライブします。カスタムコンポーネントからこのコンポーネントにメッセージをパブリッシュする方法の詳細については、「ローカルメッセージをパブリッシュ/サブスクライブする」を参照してください。
デフォルトトピック (ローカルパブリッシュ/サブスクライブ): sns/message
メッセージは、次のプロパティを受付けます。入力メッセージは JSON形式である必要があります。
request
-
Amazon SNSトピックに送信するメッセージに関する情報。
タイプ: 次の情報が含まれる
object
。message
-
文字列としてのメッセージの内容。
JSON オブジェクトを送信するには、文字列としてシリアル化し、
message_structure
プロパティjson
に を指定します。タイプ:
string
subject
-
(オプション) メッセージの件名
タイプ:
string
件名はASCIIテキストで、最大 100 文字です。文字、数字、または句読点で始まる必要があります。改行や制御文字を含めることはできません。
sns_topic_arn
-
(オプション) このコンポーネントがメッセージを発行する Amazon SNSトピックARNの 。このプロパティを指定して、デフォルトの Amazon SNSトピックを上書きします。
タイプ:
string
message_structure
-
(オプション) メッセージの構造。
content
プロパティで文字列としてシリアル化するJSONメッセージを送信json
するには、 を指定します。タイプ:
string
有効な値:
json
id
-
リクエストの任意の ID。このプロパティを使用して、入力リクエストを出力レスポンスにマッピングします。このプロパティを指定するとき、コンポーネントはこの値に対してレスポンスオブジェクトの
id
プロパティを設定します。タイプ:
string
注記
メッセージサイズは最大 256 KB です。
例 入力例: 文字列メッセージ
{ "request": { "subject": "Message subject", "message": "Message data", "sns_topic_arn": "arn:aws:sns:
region
:account-id
:topic2-name" }, "id": "request123" }
例 入力例: JSON メッセージ
{ "request": { "subject": "Message subject", "message": "{ \"default\": \"Message data\" }", "message_structure": "json" }, "id": "request123" }
出力データ
このコンポーネントは、デフォルトで次のMQTTトピックでレスポンスを出力データとして発行します。このトピックは、[legacy subscription router component] (レガシーサブスクリプションルーターコンポーネント) の設定で subject
として指定する必要があります。カスタムコンポーネントでこのトピックに関するメッセージへサブスクライブする方法の詳細については、「メッセージの発行/サブスクライブ AWS IoT Core MQTT 」を参照してください。
デフォルトトピック (AWS IoT Core MQTT): sns/message/status
例 出力例: 成功
{ "response": { "sns_message_id": "f80a81bc-f44c-56f2-a0f0-d5af6a727c8a", "status": "success" }, "id": "request123" }
例 出力例: 失敗
{ "response" : { "error": "InvalidInputException", "error_message": "SNS Topic Arn is invalid", "status": "fail" }, "id": "request123" }
ローカルログファイル
このコンポーネントは次のログファイルを使用します。
/logs/aws.greengrass.SNS.log
/greengrass/v2
このコンポーネントのログを確認するには
-
コアデバイスに次のコマンドを実行して、このコンポーネントのログファイルをリアルタイムに確認します。を AWS IoT Greengrass ルートフォルダへのパス
に置き換えます。/greengrass/v2
sudo tail -f
/logs/aws.greengrass.SNS.log/greengrass/v2
ライセンス
このコンポーネントには、次のサードパーティーソフトウェア/ライセンス品が含まれています。
-
AWS SDK for Python (Boto3)
/Apache License 2.0 -
botocore
/Apache License 2.0 -
dateutil
/PSF ライセンス -
docutils
/BSD License、GNUGeneral Public License (GPL)、Python Software Foundation License、Public Domain -
jmespath/
MITライセンス -
s3transfer
/Apache License 2.0 -
urllib3
/MIT ライセンス
このコンポーネントは、Greengrass Core ソフトウェアライセンス契約
変更ログ
次の表は、コンポーネントの各バージョンにおける変更を示します。
バージョン |
変更 |
---|---|
2.1.8 |
Greengrass nucleus バージョン 2.13.0 リリース用にバージョンが更新されました。 |
2.1.7 |
Greengrass nucleus バージョン 2.12.0 リリース用にバージョンが更新されました。 |
2.1.6 |
Greengrass nucleus バージョン 2.11.0 のリリース用にバージョンが更新されました。 |
2.1.5 |
Greengrass nucleus バージョン 2.10.0 のリリース用にバージョンが更新されました。 |
2.1.4 |
Greengrass nucleus バージョン 2.9.0 のリリース用にバージョンが更新されました。 |
2.1.3 |
Greengrass nucleus バージョン 2.8.0 のリリース用にバージョンが更新されました。 |
2.1.2 |
Greengrass nucleus バージョン 2.7.0 のリリース用にバージョンが更新されました。 |
2.1.1 |
Greengrass nucleus バージョン 2.6.0 のリリース用にバージョンが更新されました。 |
2.1.0 |
|
2.0.8 |
Greengrass nucleus バージョン 2.5.0 のリリース用にバージョンが更新されました。 |
2.0.7 |
Greengrass nucleus バージョン 2.4.0 のリリース用にバージョンが更新されました。 |
2.0.6 |
Greengrass nucleus バージョン 2.3.0 のリリース用にバージョンが更新されました。 |
2.0.5 |
Greengrass nucleus バージョン 2.2.0 のリリース用にバージョンが更新されました。 |
2.0.4 |
Greengrass nucleus バージョン 2.1.0 のリリース用にバージョンが更新されました。 |
2.0.3 |
当初のバージョン |