翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
コアデバイスにデプロイするコンポーネントをパブリッシュ
コンポーネントのバージョンを構築または完成した後、AWS IoT Greengrass サービスにパブリッシュできます。次に、Greengrass コアデバイスにデプロイできます。
Greengrass Development Kit CLI (GDK CLI) を使用してコンポーネントを開発と構築する場合、GDK CLI を使用してコンポーネントを AWS クラウド にパブリッシュできます。それ以外の場合、組込み型のシェルコマンドと AWS CLI を使用してコンポーネントをパブリッシュします。
AWS CloudFormation を使用して、テンプレートでコンポーネントと他の AWS リソースを作成することもできます。詳細については、「AWS CloudFormation ユーザーガイド」の「AWS CloudFormation とは」と「AWS::GreengrassV2::ComponentVersion」を参照してください。
コンポーネントをパブリッシュ (GDK CLI)
このセクションの指示に従って、GDK CLI を使用してコンポーネントをパブリッシュします。GDK CLI は、S3 バケットにビルドアーティファクトをアップロード、recipe のアーティファクト URI を更新、recipe からコンポーネントを作成します。S3 バケットとリージョンが GDK CLI 設定ファイルを使用するように指定します。
GDK CLI v1.1.0 以降を使用する場合、--bucket 引数を指定して、GDK CLI がコンポーネントのアーティファクトをアップロードする S3 バケットを指定します。この引数を指定しない場合、GDK CLI は名前が である S3 バケットにアップロードします。ここでは、bucket-region-accountIdgdk-config.json で指定する値は bucket と region であり、accountId は AWS アカウント ID です。GDK CLI は、バケットが存在しない場合に作成します。
重要
コアデバイスのロールは、デフォルトで S3 バケットへのアクセスを許可しません。この S3 バケットを初めて使用する場合、コアデバイスがこの S3 バケットからコンポーネントアーティファクトを取得するため、ロールに許可を追加する必要があります。詳細については、「コンポーネントのアーティファクトの S3 バケットへのアクセスを許可する」を参照してください。
Greengrass コンポーネントをパブリッシュするには (GDK CLI)
-
コマンドプロントまたはターミナルでコンポーネントフォルダを開きます。
-
まだ作成していない場合、Greengrass コンポーネントを作成します。コンポーネントビルドコマンドは、コンポーネントフォルダにある
greengrass-buildフォルダに recipe とアーティファクトを作成します。以下のコマンドを実行してください。gdk component build -
コンポーネントを AWS クラウド にパブリッシュします。コンポーネントをパブリッシュコマンドは、コンポーネントのアーティファクトを Amazon S3 にアップロードし、各アーティファクトの URI でコンポーネントの recipe を更新します。次に、コンポーネントを AWS IoT Greengrass サービスに作成します。
注記
AWS IoT Greengrass は、コンポーネントの作成時に各アーティファクトのダイジェストを計算します。つまり、コンポーネントを作成した後、S3 バケットのアーティファクトファイルを修正することはできません。そうした場合、ファイルダイジェストが一致しないため、このコンポーネントを含むデプロイは失敗します。アーティファクトファイルを修正する場合、コンポーネントの新しいバージョンを作成する必要があります。
GDK CLI 設定ファイルのコンポーネントバージョンに
NEXT_PATCHを指定した場合、GDK CLI は AWS IoT Greengrass サービスにまだ存在しない次のパッチバージョンを使用します。以下のコマンドを実行してください。
gdk component publish出力には、GDK CLI が作成したコンポーネントのバージョンが示されます。
コンポーネントをパブリッシュした後、コンポーネントをコアデバイスにデプロイできます。詳細については、「AWS IoT Greengrass コンポーネントをデバイスにデプロイする」を参照してください。
コンポーネントをパブリッシュ (シェルコマンド)
シェルコマンドと AWS Command Line Interface (AWS CLI) を使用してコンポーネントをパブリッシュするには、次の手順を実行します。コンポーネントをパブリッシュするときは、次の手順を実行します。
-
S3 バケットにコンポーネントアーティファクトをパブリッシュします。
-
各アーティファクトの Amazon S3 URI をコンポーネント recipe に追加します。
-
コンポーネント recipe から AWS IoT Greengrass でコンポーネントバージョンを作成します。
注記
アップロードする各コンポーネントバージョンは一意である必要があります。アップロード後は編集できないため、必ず正しいコンポーネントバージョンをアップロードしてください。
これらの手順に従って、開発コンピュータまたは Greengrass コアデバイスからコンポーネントをパブリッシュできます。
コンポーネントをパブリッシュするには (シェルコマンド)
-
コンポーネントが、AWS IoT Greengrass サービスに存在するバージョンを使用している場合、コンポーネントのバージョンを変更する必要があります。テキストエディタで recipe を開き、バージョンをインクリメントしてファイルを保存します。コンポーネントに加えた変更を反映する新しいバージョンを選択します。
注記
AWS IoT Greengrass はコンポーネントのセマンティックバージョンを使用します。セマンティックバージョンは、major.minor.patch といった番号システムに準拠します。例えば、バージョン
1.0.0は、コンポーネントの最初のメジャーリリースを表しています。詳細については、「セマンティックバージョンの仕様」を参照してください。 -
コンポーネントにアーティファクトがある場合、次の手順を実行します。
-
AWS アカウント の S3 バケットにコンポーネントのアーティファクトをパブリッシュします。
ヒント
S3 バケットのアーティファクトへのパスに、コンポーネント名とバージョンを含めることをお勧めします。この命名規則は、以前のバージョンのコンポーネントが使用していたアーティファクトを維持するうえで役立ち、以前のコンポーネントバージョンを引き続きサポートできるようにします。
次のコマンドを実行して、アーティファクトファイルを S3 バケットにパブリッシュします。amzn-s3-demo-bucket をバケットの名前に置き換えて、
artifacts/com.example.HelloWorld/1.0.0/artifact.pyをアーティファクトファイルへのパスに置き換えます。aws s3 cpartifacts/com.example.HelloWorld/1.0.0/artifact.pys3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/artifact.py重要
コアデバイスのロールは、デフォルトで S3 バケットへのアクセスを許可しません。この S3 バケットを初めて使用する場合、コアデバイスがこの S3 バケットからコンポーネントアーティファクトを取得するため、ロールに許可を追加する必要があります。詳細については、「コンポーネントのアーティファクトの S3 バケットへのアクセスを許可する」を参照してください。
-
Artifactsという名前のリストが存在しない場合、コンポーネント recipe に追加します。Artifactsリストは各マニフェストに表示され、サポートする各プラットフォームにおけるコンポーネントの要件 (またはすべてのプラットフォームに対するコンポーネントのデフォルト要件) を定義します。 -
各アーティファクトをアーティファクトのリストに追加、あるいは既存アーティファクトの URI を更新します。Amazon S3 URI は、バケット名とバケット内のアーティファクトオブジェクトへのパスで設定されます。アーティファクトの Amazon S3 URI は次の例のようになります。
s3://amzn-s3-demo-bucket/artifacts/com.example.HelloWorld/1.0.0/artifact.py
これらのステップが完了したら、recipe の
Artifactsリストは次のようになります。recipe の詳細については、「AWS IoT Greengrass コンポーネントレシピのリファレンス」を参照してください。
-
-
AWS IoT Greengrass コンソールを使用して、recipe ファイルからコンポーネントを作成します。
次のコマンドを実行して、recipe ファイルからコンポーネントを作成します。このコマンドは、コンポーネントを作成して AWS アカウント のプライベート AWS IoT Greengrass コンポーネントとしてパブリッシュします。
path/to/recipeFileを recipe ファイルへのパスに置き換えます。aws greengrassv2 create-component-version --inline-recipe fileb://path/to/recipeFileレスポンスから
arnをコピーして、次のステップでコンポーネントの状態をチェックします。注記
AWS IoT Greengrass は、コンポーネントの作成時に各アーティファクトのダイジェストを計算します。つまり、コンポーネントを作成した後、S3 バケットのアーティファクトファイルを修正することはできません。そうした場合、ファイルダイジェストが一致しないため、このコンポーネントを含むデプロイは失敗します。アーティファクトファイルを修正する場合、コンポーネントの新しいバージョンを作成する必要があります。
-
AWS IoT Greengrass サービスの各コンポーネントには状態があります。次のコマンドを実行して、この手順でパブリッシュするコンポーネントバージョンの状態を確認します。
com.example.HelloWorldと1.0.0をクエリするコンポーネントバージョンに置き換えます。arnを、前のステップで書き留めた ARN に置き換えます。aws greengrassv2 describe-component --arn "arn:aws:greengrass:region:account-id:components:com.example.HelloWorld:versions:1.0.0"このオペレーションは、コンポーネントのメタデータを含むレスポンスを返します。メタデータには、コンポーネントの状態とエラーを含む
statusオブジェクトが含まれています (該当する場合)。コンポーネントの状態が
DEPLOYABLEな場合、コンポーネントをデバイスにデプロイできます。詳細については、「AWS IoT Greengrass コンポーネントをデバイスにデプロイする」を参照してください。