レガシーサブスクリプションルーター - AWS IoT Greengrass

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

レガシーサブスクリプションルーター

レガシーサブスクリプションルータ (aws.greengrass.LegacySubscriptionRouter) は、Greengrass コアデバイスのサブスクリプションを管理します。サブスクリプションは AWS IoT Greengrass V1 の機能で、Lambda 関数がコアデバイスの MQTT メッセージングに使用できるトピックを定義するものです。詳細については、「AWS IoT Greengrass V1 デベロッパーガイド」の「MQTT メッセージングワークフローにおけるマネージドサブスクリプション」を参照してください。

このコンポーネントを使用して、AWS IoT Greengrass Core SDK を使用するコネクタコンポーネントと Lambda 関数コンポーネントのサブスクリプションを有効にできます。

注記

レガシーサブスクリプションルーターコンポーネントは、Lambda 関数が AWS IoT Greengrass Core SDK の publish() 関数を使用する場合にのみ必要です。AWS IoT Device SDK V2 でプロセス間通信 (IPC) インターフェイスを使用するように Lambda 関数コードを更新する場合、レガシーサブスクリプションルーターコンポーネントをデプロイする必要はありません。詳細については、次のプロセス間通信サービスを参照してください。

バージョン

このコンポーネントには、次のバージョンがあります。

  • 2.1.x

  • 2.0.x

タイプ

このコンポーネントはジェネリックコンポーネント (aws.greengrass.generic) です。Greengrass nucleus は、コンポーネントのライフサイクルスクリプトを実行します。

詳細については、「コンポーネントタイプ」を参照してください。

オペレーティングシステム

このコンポーネントは、Linux コアデバイスにのみインストールできます。

要件

このコンポーネントには次の要件があります。

  • レガシーサブスクリプションルーターは、VPC での実行がサポートされています。

依存関係

コンポーネントをデプロイするとき、AWS IoT Greengrass はそれと互換性のあるバージョンの依存関係もデプロイします。つまり、コンポーネントを正常にデプロイするには、コンポーネントとその依存関係のすべての要件を満たす必要があります。このセクションでは、このコンポーネントのリリースされたバージョンの依存関係と、各依存関係に対するコンポーネントのバージョンを定義するセマンティックバージョン制約をリスト表示しています。コンポーネントの各バージョンの依存関係は、AWS IoT Greengrass コンソールでも確認できます。コンポーネントの詳細ページで [Dependencies] (依存関係) リストを確認します。

2.1.11

次の表に、このコンポーネントのバージョン 2.1.11 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.13.0 ソフト
2.1.10

次の表に、このコンポーネントのバージョン 2.1.10 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.12.0 ソフト
2.1.9

次の表に、このコンポーネントのバージョン 2.1.9 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.11.0 ソフト
2.1.8

次の表に、このコンポーネントのバージョン 2.1.8 に関する依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.10.0 ソフト
2.1.7

次の表に、このコンポーネントのバージョン 2.1.7 に関する依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.9.0 ソフト
2.1.6

次の表に、このコンポーネントのバージョン 2.1.6 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.8.0 ソフト
2.1.5

次の表に、このコンポーネントのバージョン 2.1.5 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.7.0 ソフト
2.1.4

次の表に、このコンポーネントのバージョン 2.1.4 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.6.0 ソフト
2.1.3

次の表に、このコンポーネントのバージョン 2.1.3 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.5.0 ソフト
2.1.2

次の表に、このコンポーネントのバージョン 2.1.2 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.4.0 ソフト
2.1.1

次の表に、このコンポーネントのバージョン 2.1.1 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.3.0 ソフト
2.1.0

次の表に、このコンポーネントのバージョン 2.1.0 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.0 <2.2.0 ソフト
2.0.3

次の表に、このコンポーネントのバージョン 2.0.3 の依存関係を示します。

依存関係 互換性のあるバージョン 依存関係タイプ
Greengrass nucleus >=2.0.3 <2.1.0 ソフト

コンポーネントの依存関係の詳細については、「コンポーネント recipe のリファレンス」を参照してください。

構成

このコンポーネントには、コンポーネントのデプロイ時にカスタマイズできる次の設定パラメータが用意されています。

v2.1.x
subscriptions

(オプション) コアデバイスで有効にするサブスクリプション。これはオブジェクトで、各キーは一意の ID であり、各値はそのコネクタのサブスクリプションを定義するオブジェクトです。V1 コネクタコンポーネントまたは AWS IoT Greengrass Core SDK を使用する Lambda 関数をデプロイするときは、サブスクリプションを設定する必要があります。

各サブスクリプションオブジェクトには、次の情報が含まれます:

id

このサブスクリプションの一意の ID。この ID は、このサブスクリプションオブジェクトのキーと一致する必要があります。

source

AWS IoT Greengrass Core SDKを 使用して、subject で指定したトピックに関する MQTT メッセージの発行を行う Lambda 関数です。次のいずれかを指定します。

  • コアデバイスでの Lambda 関数コンポーネントの名前。component:com.example.HelloWorldLambda などの component: プレフィックスを付けてコンポーネント名を指定します。

  • コアデバイスの Lambda 関数の Amazon リソースネーム (ARN)。

    重要

    Lambda 関数のバージョンが変更された場合は、関数の新しいバージョンでサブスクリプションを設定する必要があります。これを怠ると、バージョンがサブスクリプションと一致しないうちは、このコンポーネントはメッセージをルーティングしません。

    インポートする関数のバージョンが含まれた Amazon リソースネーム (ARN) を指定する必要があります。$LATEST のようなバージョンエイリアスは使用できません。

V1 コネクタコンポーネントのサブスクリプションをデプロイするには、コンポーネントの名前またはコネクタコンポーネントの Lambda 関数の ARN を指定します。

subject

ソースとターゲットがメッセージを発行および受信できる MQTT トピックまたはトピックフィルター。この値は + および # トピックのワイルドカードをサポートしています。

target

subject で指定したトピックに関する MQTT メッセージを受信するターゲット。サブスクリプションは、source 関数が AWS IoT Core またはコアデバイスの Lambda 関数に MQTT メッセージを発行することを指定します。次のいずれかを指定します。

  • cloudsource 関数は MQTT メッセージを AWS IoT Core に発行します。

  • コアデバイスでの Lambda 関数コンポーネントの名前。component:com.example.HelloWorldLambda などの component: プレフィックスを付けてコンポーネント名を指定します。

  • コアデバイスの Lambda 関数の Amazon リソースネーム (ARN)。

    重要

    Lambda 関数のバージョンが変更された場合は、関数の新しいバージョンでサブスクリプションを設定する必要があります。これを怠ると、バージョンがサブスクリプションと一致しないうちは、このコンポーネントはメッセージをルーティングしません。

    インポートする関数のバージョンが含まれた Amazon リソースネーム (ARN) を指定する必要があります。$LATEST のようなバージョンエイリアスは使用できません。

デフォルト: サブスクリプションなし

例 設定更新の例 (AWS IoT Core に対するサブスクリプションの定義)

以下の例は、com.example.HelloWorldLambda Lambda 関数コンポーネントが AWS IoT Core に hello/world トピックに関する MQTT メッセージを公開することを指定します。

{ "subscriptions": { "Greengrass_HelloWorld_to_cloud": { "id": "Greengrass_HelloWorld_to_cloud", "source": "component:com.example.HelloWorldLambda", "subject": "hello/world", "target": "cloud" } } }
例 設定更新の例 (別の Lambda 関数に対するサブスクリプションの定義)

以下の例は、com.example.HelloWorldLambda Lambda 関数コンポーネントが com.example.MessageRelay Lambda 関数コンポーネントに hello/world トピックに関する MQTT メッセージを公開することを指定します。

{ "subscriptions": { "Greengrass_HelloWorld_to_MessageRelay": { "id": "Greengrass_HelloWorld_to_MessageRelay", "source": "component:com.example.HelloWorldLambda", "subject": "hello/world", "target": "component:com.example.MessageRelay" } } }
v2.0.x
subscriptions

(オプション) コアデバイスで有効にするサブスクリプション。これはオブジェクトで、各キーは一意の ID であり、各値はそのコネクタのサブスクリプションを定義するオブジェクトです。V1 コネクタコンポーネントまたは AWS IoT Greengrass Core SDK を使用する Lambda 関数をデプロイするときは、サブスクリプションを設定する必要があります。

各サブスクリプションオブジェクトには、次の情報が含まれます:

id

このサブスクリプションの一意の ID。この ID は、このサブスクリプションオブジェクトのキーと一致する必要があります。

source

AWS IoT Greengrass Core SDKを 使用して、subject で指定したトピックに関する MQTT メッセージの発行を行う Lambda 関数です。次を指定します:

  • コアデバイスの Lambda 関数の Amazon リソースネーム (ARN)。

    重要

    Lambda 関数のバージョンが変更された場合は、関数の新しいバージョンでサブスクリプションを設定する必要があります。これを怠ると、バージョンがサブスクリプションと一致しないうちは、このコンポーネントはメッセージをルーティングしません。

    インポートする関数のバージョンが含まれた Amazon リソースネーム (ARN) を指定する必要があります。$LATEST のようなバージョンエイリアスは使用できません。

V1 コネクタコンポーネントのサブスクリプションをデプロイするには、コネクタコンポーネントの Lambda 関数の ARN を指定します。

subject

ソースとターゲットがメッセージを発行および受信できる MQTT トピックまたはトピックフィルター。この値は + および # トピックのワイルドカードをサポートしています。

target

subject で指定したトピックに関する MQTT メッセージを受信するターゲット。サブスクリプションは、source 関数が AWS IoT Core またはコアデバイスの Lambda 関数に MQTT メッセージを発行することを指定します。次のいずれかを指定します。

  • cloudsource 関数は MQTT メッセージを AWS IoT Core に発行します。

  • コアデバイスの Lambda 関数の Amazon リソースネーム (ARN)。

    重要

    Lambda 関数のバージョンが変更された場合は、関数の新しいバージョンでサブスクリプションを設定する必要があります。これを怠ると、バージョンがサブスクリプションと一致しないうちは、このコンポーネントはメッセージをルーティングしません。

    インポートする関数のバージョンが含まれた Amazon リソースネーム (ARN) を指定する必要があります。$LATEST のようなバージョンエイリアスは使用できません。

デフォルト: サブスクリプションなし

例 設定更新の例 (AWS IoT Core に対するサブスクリプションの定義)

以下の例は、Greengrass_HelloWorld 関数が AWS IoT Core に hello/world トピックに関する MQTT メッセージを公開することを指定します。

"subscriptions": { "Greengrass_HelloWorld_to_cloud": { "id": "Greengrass_HelloWorld_to_cloud", "source": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld:5", "subject": "hello/world", "target": "cloud" } }
例 設定更新の例 (別の Lambda 関数に対するサブスクリプションの定義)

以下の例は、Greengrass_HelloWorld 関数が Greengrass_MessageRelayhello/world トピックに関する MQTT メッセージを公開することを指定します。

"subscriptions": { "Greengrass_HelloWorld_to_MessageRelay": { "id": "Greengrass_HelloWorld_to_MessageRelay", "source": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_HelloWorld:5", "subject": "hello/world", "target": "arn:aws:lambda:us-west-2:123456789012:function:Greengrass_MessageRelay:5" } }

ローカルログファイル

このコンポーネントはログを出力しません。

変更ログ

次の表は、コンポーネントの各バージョンにおける変更を示します。

バージョン

変更

2.1.11

Greengrass nucleus バージョン 2.12.0 リリース用にバージョンが更新されました。

2.1.10

Greengrass nucleus バージョン 2.11.0 のリリース用にバージョンが更新されました。

2.1.9

Greengrass nucleus バージョン 2.10.0 のリリース用にバージョンが更新されました。

2.1.8

Greengrass nucleus バージョン 2.9.0 のリリース用にバージョンが更新されました。

2.1.7

Greengrass nucleus バージョン 2.8.0 のリリース用にバージョンが更新されました。

2.1.6

Greengrass nucleus バージョン 2.7.0 のリリース用にバージョンが更新されました。

2.1.5

Greengrass nucleus バージョン 2.6.0 のリリース用にバージョンが更新されました。

2.1.4

Greengrass nucleus バージョン 2.5.0 のリリース用にバージョンが更新されました。

2.1.3

Greengrass nucleus バージョン 2.4.0 のリリース用にバージョンが更新されました。

2.1.2

Greengrass nucleus バージョン 2.3.0 のリリース用にバージョンが更新されました。

2.1.1

Greengrass nucleus バージョン 2.2.0 のリリース用にバージョンが更新されました。

2.1.0

バグ修正と機能向上
  • sourcetarget の ARN の代わりにコンポーネント名を指定するサポートを追加しました。サブスクリプションのコンポーネント名を指定する場合、Lambda 関数のバージョンが変更されるたびにサブスクリプションを再設定する必要はありません。

2.0.3

当初のバージョン