メニュー
AWS Greengrass
開発者ガイド

サブスクリプション定義の作成

サブスクリプション定義は、AWS Greengrass グループにデプロイするサブスクリプションのコレクションです。これらのサブスクリプションでは、AWS Greengrass グループ内でのメッセージの送受信方法を指定します。送信元と送信先の間でメッセージが送信されるのは、サブスクリプション定義に送信元と送信先のサブスクリプションがある場合に限ります。

最初に、CLI コマンド create-subscription-definition を使用してサブスクリプション定義を作成します。

Copy
aws greengrass create-subscription-definition --name "MySubscriptionDefinition"

--name 引数は、サブスクリプション定義の名前を指定します。

create-subscription-definition コマンドの出力は次のようになります。

Copy
{ "LastUpdatedTimestamp": "2017-05-17T20:20:40.534Z", "CreationTimestamp": "2017-05-17T20:20:40.534Z", "Id": "17d6cb13-3745-496c-9187-29316b37115e", "Arn":"arn:aws:greengrass:us-west-2:123451234510:/greengrass/definition/subscriptions/17d6cb13-3745-496c-9187-29316b37115e", "Name": "<MySubscriptionDefinition>" }

次にサブスクリプションを追加して、サブスクリプション定義のバージョンを作成します。

Copy
aws greengrass create-subscription-definition-version --subscription-definition-id "<SubscriptionDefinitionId>" --subscriptions '[ { "Id": "1", "Source": "<Switch_Thing-arn>", "Subject": "$aws/things/RobotArm_Thing/shadow/update", "Target": "GGShadowService" }, { "Id": "2", "Source": "<RobotArm_Thing-arn>", "Subject": "/topic/state", "Target": "<uptimeLambda-arn>" }, { "Id": "3", "Source": "<RobotArm_Thing-arn>", "Subject": "$aws/things/RobotArm_Thing/shadow/update", "Target": "GGShadowService" }, { "Id": "4", "Source": "GGShadowService", "Subject": "$aws/things/RobotArm_Thing/shadow/update/delta", "Target": "<RobotArm_Thing-arn>" }, { "Id": "5", "Source": "<uptimeLambda-arn>", "Subject": "/topic/metering", "Target": "cloud" }, { "Id": "6", "Source": "<messageLambda-arn>", "Subject": "$aws/things/RobotArm_Thing/shadow/update", "Target": "GGShadowService" }, { "Id": "7", "Source": "cloud", "Subject": "/topic/update", "Target": "<messageLambda-arn>" }, { "Id": "8", "Source": "GGShadowService", "Subject": "$aws/things/RobotArm_Thing/shadow/update/accepted", "Target": "<Switch_Thing-arn>" }, { "Id":"9", "Source":"GGShadowService", "Subject":"$aws/things/RobotArm_Thing/shadow/update/rejected", "Target": "<Switch_Thing-arn>" }, { "Id":"10", "Source":"GGShadowService", "Subject": "$aws/things/RobotArm_Thing/shadow/update/accepted", "Target": "<RobotArm_Thing-arn>" }, { "Id":"11", "Source":"GGShadowService", "Subject": "$aws/things/RobotArm_Thing/shadow/update/rejected", "Target": "<RobotArm_Thing-arn>" } ]'

CLI コマンド create-subscription-definition-version の引数

--subscription-definition-id

サブスクリプション定義の ID。

--subscriptions

サブスクリプションを定義する JSON オブジェクト。

Id

リストの当該エントリの要素 ID。

Source

メッセージのソース。

Subject

メッセージをフィルタするための MQTT トピック。

Target

メッセージの受取人。

CLI コマンド create-subscription-definition-version の出力は次のようになります。

Copy
{ "Arn" : "arn:aws:greengrass:us-west-2:123451234510:/greengrass/definition/subscriptions/17d6cb13-3745-496c-9187-29316b37115e/versions/0ad227b8-3d1d-43f6-bcc9-446201386e69", "Id" : "17d6cb13-3745-496c-9187-29316b37115e", "Version" : "0ad227b8-3d1d-43f6-bcc9-446201386e69", "CreationTimestamp" : "2017-05-17T21:15:00.350Z" }

サブスクリプション定義は、CLI コマンド get-subscription-definition-version を使用して表示できます。

Copy
aws greengrass get-subscription-definition-version --subscription-definition-id "<SubscriptionDefinitionId>" --subscription-definition-version-id "<SubscriptionDefinitionVersion>"

CLI コマンド get-subscription-definition-version の引数

--subscription-definition-id

サブスクリプション定義の ID。

--subscription-definition-version-id

サブスクリプション定義バージョンの ID。

CLI コマンド get-subscription-definition-version の出力は次のようになります。

Copy
{ "Definition": { "Subscriptions": [ { "Source": "<Switch_Thing-arn>", "Target": "GGShadowService", "Id": "1", "Subject": "$aws/things/RobotArm_Thing/shadow/update" }, { "Source": "GGShadowService", "Target": "<RobotArm_Thing-arn>", "Id": "10", "Subject": "$aws/things/RobotArm_Thing/shadow/update/accepted" }, { "Source": "GGShadowService", "Target": "<RobotArm_Thing-arn>", "Id": "11", "Subject": "$aws/things/RobotArm_Thing/shadow/update/rejected" }, { "Source": "<RobotArm_Thing-arn>", "Target": "<uptimeLambda-arn>", "Id": "2", "Subject": "/topic/state" }, { "Source": "<RobotArm_Thing-arn>", "Target": "GGShadowService", "Id": "3", "Subject": "$aws/things/RobotArm_Thing/shadow/update" }, { "Source": "GGShadowService", "Target": "<RobotArm_Thing-arn>", "Id": "4", "Subject": "$aws/things/RobotArm_Thing/shadow/update/delta" }, { "Source": "<uptimeLambda-arn>", "Target": "cloud", "Id": "5", "Subject": "/topic/metering" }, { "Source": "<messageLambda-arn>", "Target": "GGShadowService", "Id": "6", "Subject": "$aws/things/RobotArm_Thing/shadow/update" }, { "Source": "cloud", "Target": "<messageLambda-arn>", "Id": "7", "Subject": "/topic/update" }, { "Source": "GGShadowService", "Target": "<Switch_Thing-arn>", "Id": "8", "Subject": "$aws/things/RobotArm_Thing/shadow/update/accepted" }, { "Source": "GGShadowService", "Target": , "Id": "9", "Subject": "$aws/things/RobotArm_Thing/shadow/update/rejected" } ] }, "Version": "0ad227b8-3d1d-43f6-bcc9-446201386e69", "CreationTimestamp": "2017-05-17T21:15:00.350Z", "Id": "17d6cb13-3745-496c-9187-29316b37115e", "Arn": "arn:aws:greengrass:us-west-2:123451234510:/greengrass/definition/subscriptions/17d6cb13-3745-496c-9187-29316b37115e/versions/0ad227b8-3d1d-43f6-bcc9-446201386e69" }