翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
Lambda 関数をコンポーネント (AWS CLI) としてインポートする
CreateComponentVersion オペレーションを使用して、Lambda 関数からコンポーネントを作成します。このオペレーションを呼び出すときは、lambdaFunction
を指定して Lambda 関数をインポートします。
ステップ 1: Lambda 関数の設定を定義する
-
という名前のファイルを作成し
lambda-function-component.json
、次のJSONオブジェクトを ファイルにコピーします。をインポートする Lambda 関数ARNのlambdaArn
に置き換えます。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1" } }重要
インポートARNする関数のバージョンを含む を指定する必要があります。
$LATEST
のようなバージョンエイリアスは使用できません。 -
(オプション) コンポーネントの名前 (
componentName
) を指定します。このパラメータを省略すると、 は Lambda 関数の名前でコンポーネント AWS IoT Greengrass を作成します。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
" } } -
(オプション) コンポーネントのバージョン (
componentVersion
) を指定します。このパラメータを省略すると、 は Lambda 関数のバージョンを有効なセマンティックバージョンとしてコンポーネント AWS IoT Greengrass を作成します。例えば、関数のバージョンが3
である場合、コンポーネントのバージョンは3.0.0
になります。注記
アップロードする各コンポーネントバージョンは一意である必要があります。アップロード後は編集できないため、必ず正しいコンポーネントバージョンをアップロードしてください。
AWS IoT Greengrass はコンポーネントにセマンティックバージョンを使用します。セマンティックバージョンは、major.minor.patch といった番号システムに準拠します。例えば、バージョン
1.0.0
は、コンポーネントの最初のメジャーリリースを表しています。詳細については、「セマンティックバージョンの仕様」を参照してください。 { "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
" } } -
(オプション) この Lambda 関数がサポートするプラットフォームを指定します。各プラットフォームには、プラットフォームを識別するための属性のマップが含まれます。すべてのコアデバイスには、オペレーティングシステム (
os
) とアーキテクチャ (architecture
) の属性があります。 AWS IoT Greengrass Core ソフトウェアは、他のプラットフォーム属性を追加する場合があります。コアデバイスに Greengrass nucleus コンポーネント をデプロイする際、カスタムのプラットフォーム属性を指定することもできます。以下の操作を実行します。-
lambda-function-component.json
の Lambda 関数にプラットフォームのリスト (componentPlatforms
) を追加します。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ ] } } -
サポートされている各プラットフォームをリストに追加します。各プラットフォームには識別用のフレンドリー
name
と属性のマップがあります。以下の例は、この関数が Linux を実行する x86 デバイスをサポートすることを指定しています。{ "name": "
Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } }lambda-function-component.json
には以下の例のようなドキュメントが含まれる場合があります。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ] } }
-
-
(オプション) Lambda 関数のコンポーネントの依存関係を指定します。Lambda 関数コンポーネントをデプロイすると、関数を実行するためのこれらの依存関係がデプロイに含まれます。
重要
AWS IoT Greengrass V1 で実行するために作成した Lambda 関数をインポートするには、シークレット、ローカルシャドウ、ストリームマネージャーなど、関数が使用する機能の個々のコンポーネントの依存関係を定義する必要があります。これらのコンポーネントをハード依存関係として定義し、依存関係の状態が変化すると Lambda 関数コンポーネントが再起動するようにしてください。詳細については、「V1 Lambda 関数をインポートする」を参照してください。
以下の操作を実行します。
-
lambda-function-component.json
の Lambda 関数にコンポーネントの依存関係 (componentDependencies
) のマップを追加します。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ], "componentDependencies": { } } } -
各コンポーネントの依存関係をマップに追加します。コンポーネント名をキーとして指定し、以下のパラメータを使用してオブジェクトを指定します。
-
versionRequirement
– コンポーネントの依存関係において互換性のあるバージョンを識別する npm スタイルのセマンティックバージョン制約。1 つのバージョンまたはバージョンの範囲を指定できます。セマンティックバージョン制約の詳細については、npm semver calculatorを参照してください。 -
dependencyType
– (オプション) 依存関係のタイプ。次から選択します。-
SOFT
- 依存関係が状態を変化させても、Lambda 関数コンポーネントは再起動しません。 -
HARD
- 依存関係が状態を変化させると、Lambda 関数コンポーネントが再起動します。
デフォルト:
HARD
。 -
次の例では、この Lambda 関数がストリームマネージャーコンポーネントの最初のメジャーバージョンのすべてのバージョンに依存することを指定しています。Lambda 関数コンポーネントは、ストリームマネージャーが再起動または更新されたときに再起動します。
{ "aws.greengrass.StreamManager": { "versionRequirement": "^1.0.0", "dependencyType": "HARD" } }
lambda-function-component.json
には以下の例のようなドキュメントが含まれる場合があります。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ], "componentDependencies": { "aws.greengrass.StreamManager": { "versionRequirement": "^1.0.0", "dependencyType": "HARD" } } } } -
-
-
(オプション) 関数の実行に使用する Lambda 関数のパラメータを設定します。環境変数、メッセージイベントソース、タイムアウト、コンテナ設定などのオプションを設定できます。以下の操作を実行します。
-
Lambda パラメータオブジェクト (
componentLambdaParameters
) をlambda-function-component.json
の Lambda 関数に追加します。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ], "componentDependencies": { "aws.greengrass.StreamManager": { "versionRequirement": "^1.0.0", "dependencyType": "HARD" } }, "componentLambdaParameters": { } } } -
(オプション) Lambda 関数が作業メッセージのためにサブスクライブするイベントソースを指定します。イベントソースを指定して、この関数をローカルのパブリッシュ/サブスクライブメッセージおよび AWS IoT Core MQTTメッセージにサブスクライブできます。Lambda 関数は、イベントソースからメッセージを受信したときに呼び出されます。
注記
この関数を他の Lambda 関数またはコンポーネントからのメッセージにサブスクライブするには、この Lambda 関数コンポーネントをデプロイするときにレガシーサブスクリプションルーターコンポーネントをデプロイしてください。レガシーサブスクリプションルーターコンポーネントをデプロイするときは、Lambda 関数が使用するサブスクリプションを指定します。
以下の操作を実行します。
-
Lambda 関数のパラメータにイベントソース (
eventSources
) のリストを追加します。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ], "componentDependencies": { "aws.greengrass.StreamManager": { "versionRequirement": "^1.0.0", "dependencyType": "HARD" } }, "componentLambdaParameters": { "eventSources": [ ] } } } -
各イベントソースをリストに追加します。各イベントソースには以下のパラメータがあります。
-
topic
– メッセージをサブスクライブするためのトピック。 -
type
– イベントソースのタイプ。次のオプションから選択します。-
PUB_SUB
- ローカルのパブリッシュ/サブスクライブメッセージをサブスクライブします。Greengrass nucleus v2.6.0 以降および Lambda マネージャー v2.2.5 以降を使用している場合は、このタイプを指定する
topic
ときに でMQTTトピックワイルドカード (+
および#
) を使用できます。 -
IOT_CORE
- メッセージをサブスクライブします AWS IoT Core MQTT。このタイプを指定する
topic
ときは、 でMQTTトピックワイルドカード (+
および#
) を使用できます。
次の例では、 AWS IoT Core MQTTトピックフィルターに一致する
hello/world/+
トピックの をサブスクライブします。{ "topic": "hello/world/+", "type": "IOT_CORE" }
lambda-function-component.json
は、次の例のようになります。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ], "componentDependencies": { "aws.greengrass.StreamManager": { "versionRequirement": "^1.0.0", "dependencyType": "HARD" } }, "componentLambdaParameters": { "eventSources": [ { "topic": "hello/world/+", "type": "IOT_CORE" } ] } } } -
-
-
-
(オプション) Lambda 関数パラメータオブジェクトで、次のパラメータのいずれかを指定します。
-
environmentVariables
– 実行時に Lambda 関数を利用できる環境変数のマップ。 -
execArgs
– 実行時に Lambda 関数に渡す引数のリスト。 -
inputPayloadEncodingType
– Lambda 関数がサポートするペイロードのタイプ。次のオプションから選択します。-
json
-
binary
デフォルト:
json
-
-
pinned
– Lambda 関数をピン留めするかどうかを示します。デフォルト:true
。-
ピン留めされた (または存続期間の長い) Lambda 関数は AWS IoT Greengrass 、 が起動したときに開始され、独自のコンテナで実行され続けます。
-
ピン留めされていない (またはオンデマンドの) Lambda 関数は、作業項目を受け取ったときのみ開始し、アイドル状態のまま指定された最大アイドル時間を過ぎると終了します。関数に複数の作業項目がある場合、 AWS IoT Greengrass Core ソフトウェアは関数の複数のインスタンスを作成します。
maxIdleTimeInSeconds
を使用して、関数の最大アイドル時間を設定します。 -
-
timeoutInSeconds
- Lambda 関数がタイムアウトするまでの最大実行時間 (秒)。デフォルト値は 3 秒です。 -
statusTimeoutInSeconds
– Lambda 関数のコンポーネントが Lambda マネージャーコンポーネントにステータスの更新を送信する間隔 (秒)。このパラメータは、ピン留めされた関数にのみ適用されます。デフォルト値は 60 秒です。 -
maxIdleTimeInSeconds
– AWS IoT Greengrass Core ソフトウェアがプロセスを停止するまでに、ピン留めされていない Lambda 関数がアイドル状態になる最大時間を秒単位で表します。デフォルト値は 60 秒です。 -
maxInstancesCount
– ピン留めされていない Lambda 関数が同時に実行できるインスタンスの最大数。デフォルトは 100 件です。 -
maxQueueSize
– Lambda 関数コンポーネントのメッセージキューの最大サイズ。 AWS IoT Greengrass Core ソフトウェアは、Lambda 関数を実行して各メッセージを消費できるようになるまで、メッセージを FIFO (first-in-first-out) キューに保存します。デフォルトはメッセージ 1,000 件です。
lambda-function-component.json
には以下の例のようなドキュメントが含まれる場合があります。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ], "componentDependencies": { "aws.greengrass.StreamManager": { "versionRequirement": "^1.0.0", "dependencyType": "HARD" } }, "componentLambdaParameters": { "eventSources": [ { "topic": "hello/world/+", "type": "IOT_CORE" } ], "environmentVariables": { "LIMIT": "300" }, "execArgs": [ "-d" ], "inputPayloadEncodingType": "json", "pinned": true, "timeoutInSeconds": 120, "statusTimeoutInSeconds": 30, "maxIdleTimeInSeconds": 30, "maxInstancesCount": 50, "maxQueueSize": 500 } } } -
-
(オプション) Lambda 関数のコンテナ設定を行います。デフォルトでは、Lambda 関数は AWS IoT Greengrass Core ソフトウェア内の分離されたランタイム環境で実行されます。また、Lambda 関数を分離されないプロセスとして実行することもできます。コンテナで Lambda 関数を実行する場合は、コンテナのメモリサイズと Lambda 関数で利用できるシステムリソースを設定します。以下の操作を実行します。
-
Linux プロセスパラメータオブジェクト (
linuxProcessParams
) を、lambda-function-component.json
の Lambda パラメータオブジェクトに追加します{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ], "componentDependencies": { "aws.greengrass.StreamManager": { "versionRequirement": "^1.0.0", "dependencyType": "HARD" } }, "componentLambdaParameters": { "eventSources": [ { "topic": "hello/world/+", "type": "IOT_CORE" } ], "environmentVariables": { "LIMIT": "300" }, "execArgs": [ "-d" ], "inputPayloadEncodingType": "json", "pinned": true, "timeoutInSeconds": 120, "statusTimeoutInSeconds": 30, "maxIdleTimeInSeconds": 30, "maxInstancesCount": 50, "maxQueueSize": 500, "linuxProcessParams": { } } } } -
(オプション) Lambda 関数をコンテナで実行するかどうかを指定します。
isolationMode
パラメータをプロセスパラメータオブジェクトに追加し、次のオプションから選択します。-
GreengrassContainer
– Lambda 関数はコンテナで実行されます。 -
NoContainer
– Lambda 関数は分離されないプロセスとして実行されます。
デフォルト:
GreengrassContainer
。 -
-
(オプション) コンテナで Lambda 関数を実行する場合、コンテナを利用できるメモリの量とシステムリソース (ボリュームやデバイスなど) を設定できます。以下の操作を実行します。
-
コンテナパラメータオブジェクト (
containerParams
) を、lambda-function-component.json
の Linux プロセスパラメータオブジェクトに追加します{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ], "componentDependencies": { "aws.greengrass.StreamManager": { "versionRequirement": "^1.0.0", "dependencyType": "HARD" } }, "componentLambdaParameters": { "eventSources": [ { "topic": "hello/world/+", "type": "IOT_CORE" } ], "environmentVariables": { "LIMIT": "300" }, "execArgs": [ "-d" ], "inputPayloadEncodingType": "json", "pinned": true, "timeoutInSeconds": 120, "statusTimeoutInSeconds": 30, "maxIdleTimeInSeconds": 30, "maxInstancesCount": 50, "maxQueueSize": 500, "linuxProcessParams": { "containerParams": { } } } } } -
(オプション)
memorySizeInKB
パラメータを追加して、コンテナのメモリサイズを指定します。デフォルトは 16,384 KB (16 MB) です。 -
(オプション)
mountROSysfs
パラメータを追加して、コンテナがデバイスの/sys
フォルダから情報を読み取れるかどうかを指定します。デフォルト:false
。 -
(オプション) コンテナ化された Lambda 関数がアクセスできるローカルボリュームを設定します。ボリュームを定義すると、 AWS IoT Greengrass Core ソフトウェアはソースファイルをコンテナ内の宛先にマウントします。以下の操作を実行します。
-
ボリュームのリスト (
volumes
) をコンテナパラメータに追加します。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ], "componentDependencies": { "aws.greengrass.StreamManager": { "versionRequirement": "^1.0.0", "dependencyType": "HARD" } }, "componentLambdaParameters": { "eventSources": [ { "topic": "hello/world/+", "type": "IOT_CORE" } ], "environmentVariables": { "LIMIT": "300" }, "execArgs": [ "-d" ], "inputPayloadEncodingType": "json", "pinned": true, "timeoutInSeconds": 120, "statusTimeoutInSeconds": 30, "maxIdleTimeInSeconds": 30, "maxInstancesCount": 50, "maxQueueSize": 500, "linuxProcessParams": { "containerParams": { "memorySizeInKB": 32768, "mountROSysfs": true, "volumes": [ ] } } } } } -
各ボリュームをリストに追加します。各ボリュームには以下のパラメータがあります。
-
sourcePath
– コアデバイスのソースフォルダへのパス。 -
destinationPath
– コンテナの保存先フォルダへのパス。 -
permission
- (オプション) コンテナからソースフォルダへのアクセス権限。次のオプションから選択します。-
ro
– Lambda 関数はソースフォルダへの読み取り専用アクセス権が与えられます。 -
rw
– Lambda 関数はソースフォルダへの読み取り/書き込みアクセス権が与えられます。
デフォルト:
ro
。 -
-
addGroupOwner
– (オプション) Lambda 関数コンポーネントを実行するシステムグループをソースフォルダの所有者として追加するかどうか。デフォルト:false
。
lambda-function-component.json
には以下の例のようなドキュメントが含まれる場合があります。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ], "componentDependencies": { "aws.greengrass.StreamManager": { "versionRequirement": "^1.0.0", "dependencyType": "HARD" } }, "componentLambdaParameters": { "eventSources": [ { "topic": "hello/world/+", "type": "IOT_CORE" } ], "environmentVariables": { "LIMIT": "300" }, "execArgs": [ "-d" ], "inputPayloadEncodingType": "json", "pinned": true, "timeoutInSeconds": 120, "statusTimeoutInSeconds": 30, "maxIdleTimeInSeconds": 30, "maxInstancesCount": 50, "maxQueueSize": 500, "linuxProcessParams": { "containerParams": { "memorySizeInKB": 32768, "mountROSysfs": true, "volumes": [ { "sourcePath": "/var/data/src", "destinationPath": "/var/data/dest", "permission": "rw", "addGroupOwner": true } ] } } } } } -
-
-
(オプション) コンテナ化された Lambda 関数がアクセスできるローカルシステムデバイスを設定します。以下の操作を実行します。
-
システムデバイスのリスト (
devices
) をコンテナパラメータに追加します。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ], "componentDependencies": { "aws.greengrass.StreamManager": { "versionRequirement": "^1.0.0", "dependencyType": "HARD" } }, "componentLambdaParameters": { "eventSources": [ { "topic": "hello/world/+", "type": "IOT_CORE" } ], "environmentVariables": { "LIMIT": "300" }, "execArgs": [ "-d" ], "inputPayloadEncodingType": "json", "pinned": true, "timeoutInSeconds": 120, "statusTimeoutInSeconds": 30, "maxIdleTimeInSeconds": 30, "maxInstancesCount": 50, "maxQueueSize": 500, "linuxProcessParams": { "containerParams": { "memorySizeInKB": 32768, "mountROSysfs": true, "volumes": [ { "sourcePath": "/var/data/src", "destinationPath": "/var/data/dest", "permission": "rw", "addGroupOwner": true } ], "devices": [ ] } } } } } -
各システムデバイスをリストに追加します。各システムデバイスには以下のパラメータがあります。
-
path
– コアデバイスのシステムデバイスへのパス。 -
permission
– (オプション) コンテナからシステムデバイスへのアクセス権限。次のオプションから選択します。-
ro
– Lambda 関数はシステムデバイスへの読み取り専用アクセス権が与えられます。 -
rw
– Lambda 関数はシステムデバイスへの読み取り/書き込みアクセス権が与えられます。
デフォルト:
ro
。 -
-
addGroupOwner
– (オプション) Lambda 関数コンポーネントを実行するシステムグループをシステムデバイスの所有者として追加するかどうか。デフォルト:false
。
-
lambda-function-component.json
には以下の例のようなドキュメントが含まれる場合があります。{ "lambdaFunction": { "lambdaArn": "arn:aws:lambda:
region
:account-id
:function:HelloWorld:1", "componentName": "com.example.HelloWorldLambda
", "componentVersion": "1.0.0
", "componentPlatforms": [ { "name": "Linux x86
", "attributes": { "os": "linux", "architecture": "x86" } } ], "componentDependencies": { "aws.greengrass.StreamManager": { "versionRequirement": "^1.0.0", "dependencyType": "HARD" } }, "componentLambdaParameters": { "eventSources": [ { "topic": "hello/world/+", "type": "IOT_CORE" } ], "environmentVariables": { "LIMIT": "300" }, "execArgs": [ "-d" ], "inputPayloadEncodingType": "json", "pinned": true, "timeoutInSeconds": 120, "statusTimeoutInSeconds": 30, "maxIdleTimeInSeconds": 30, "maxInstancesCount": 50, "maxQueueSize": 500, "linuxProcessParams": { "containerParams": { "memorySizeInKB": 32768, "mountROSysfs": true, "volumes": [ { "sourcePath": "/var/data/src", "destinationPath": "/var/data/dest", "permission": "rw", "addGroupOwner": true } ], "devices": [ { "path": "/dev/sda3", "permission": "rw", "addGroupOwner": true } ] } } } } } -
-
-
-
-
(オプション) コンポーネントのタグ (
tags
) を追加します。詳細については、「AWS IoT Greengrass Version 2 リソースのタグ付け」を参照してください。
ステップ 2: Lambda 関数コンポーネントを作成する
-
以下のコマンドを実行して、
lambda-function-component.json
から Lambda 関数コンポーネントを作成します。aws greengrassv2 create-component-version --cli-input-json file://lambda-function-component.json
リクエストが成功すると、レスポンスは次の例のようになります。
{ "arn": "arn:aws:greengrass:
region
:123456789012
:components:com.example.HelloWorldLambda:versions:1.0.0", "componentName": "com.example.HelloWorldLambda", "componentVersion": "1.0.0", "creationTimestamp": "Mon Dec 15 20:56:34 UTC 2020", "status": { "componentState": "REQUESTED", "message": "NONE", "errors": {} } }次のステップでコンポーネントの状態をチェックするために、出力から
arn
をコピーします。 -
コンポーネントを作成すると、その状態は
REQUESTED
になります。次に、 はコンポーネントがデプロイ可能であることを AWS IoT Greengrass 検証します。次のコマンドを実行して、コンポーネントのステータスを照会し、コンポーネントがデプロイ可能であることを確認します。を前のステップARNのarn
に置き換えます。aws greengrassv2 describe-component \ --arn "arn:aws:greengrass:
region
:account-id
:components:com.example.HelloWorldLambda:versions:1.0.0"コンポーネントが検証されると、レスポンスでコンポーネントの状態が
DEPLOYABLE
であることが示されます。{ "arn": "arn:aws:greengrass:
region
:account-id
:components:com.example.HelloWorldLambda:versions:1.0.0", "componentName": "com.example.HelloWorldLambda", "componentVersion": "1.0.0", "creationTimestamp": "2020-12-15T20:56:34.376000-08:00", "publisher": "AWS Lambda", "status": { "componentState": "DEPLOYABLE", "message": "NONE", "errors": {} }, "platforms": [ { "name": "Linux x86", "attributes": { "architecture": "x86", "os": "linux" } } ] }コンポーネントが
DEPLOYABLE
になった後は、Lambda 関数をコアデバイスにデプロイできます。詳細については、「デバイスに AWS IoT Greengrass コンポーネントのデプロイ」を参照してください。