翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
コンポーネント
AWS IoT Greengrass Development Kit コマンドラインインターフェイス (GDK CLI) component
の コマンドを使用して、カスタム Greengrass コンポーネントを作成、構築、および公開します。
初期化
コンポーネントテンプレートまたはコミュニティコンポーネントから Greengrass コンポーネントフォルダを初期化します。
は Greengrass ソフトウェアカタログからコミュニティコンポーネントを取得し、コンポーネントテンプレートAWS IoT Greengrass リポジトリからコンポーネントテンプレート GitHub
注記
GDK CLI v1.0.0 を使用する場合は、空のフォルダでこのコマンドを実行する必要があります。は、テンプレートまたはコミュニティコンポーネントを現在のフォルダにGDKCLIダウンロードします。
GDK CLI v1.1.0 以降を使用する場合は、 --name
引数を指定して、 がテンプレートまたはコミュニティコンポーネントGDKCLIをダウンロードするフォルダを指定できます。この引数を使用する場合は、存在しないフォルダを指定します。によって フォルダGDKCLIが作成されます。この引数を指定しない場合、 は現在のフォルダGDKCLIを使用します。このフォルダは空である必要があります。
コンポーネントが zip ビルドシステムを使用する場合、 はコンポーネントの フォルダ内の特定のファイルをコンポーネントフォルダと同じ名前の zip ファイルにGDKCLI圧縮します。たとえば、コンポーネントフォルダの名前が の場合HelloWorld
、 は という名前の zip ファイルGDKCLIを作成しますHelloWorld.zip
。コンポーネント recipe では、zip アーティファクト名はコンポーネントフォルダの名前と一致する必要があります。Windows デバイスでGDKCLIバージョン 1.0.0 を使用する場合、コンポーネントフォルダと zip ファイル名には小文字のみを使用する必要があります。
zip ビルドシステムを使用するテンプレートまたはコミュニティコンポーネントをテンプレートまたはコンポーネントとは異なる名前のフォルダに初期化する場合は、コンポーネント recipe で zip アーティファクト名を変更する必要があります。ZIP ファイル名がコンポーネントフォルダの名前と一致するように Artifacts
および Lifecycle
の定義を更新します。次の例では、Artifacts
と Lifecycle
の定義内の zip ファイル名を強調表示しています。
- 概要
-
$
gdk component init [--language] [--template] [--repository] [--name] - 引数 (コンポーネントテンプレートから初期化)
-
-
-l
、--language
- 指定したテンプレートに使用するプログラミング言語。--repository
または--language
および--template
を指定する必要があります。 -
-t
、--template
- ローカルコンポーネントプロジェクトに使用するコンポーネントテンプレート。利用可能なテンプレートを表示するには、list コマンドを使用します。--repository
または--language
および--template
を指定する必要があります。 -
-n
、--name
– (オプション) がコンポーネントをGDKCLI初期化するローカルフォルダの名前。存在しないフォルダを指定します。によって フォルダGDKCLIが作成されます。この機能は v1.1.0 GDK CLI 以降で使用できます。
-
- 引数 (コミュニティコンポーネントから初期化)
-
-
-r
、--repository
- ローカルフォルダにチェックアウトするコミュニティコンポーネント。利用可能なコミュニティコンポーネントを表示するには、list コマンドを使用します。--repository
または--language
および--template
を指定する必要があります。 -
-n
、--name
– (オプション) がコンポーネントをGDKCLI初期化するローカルフォルダの名前。存在しないフォルダを指定します。によって フォルダGDKCLIが作成されます。この機能は v1.1.0 GDK CLI 以降で使用できます。
-
- 出力
-
次の例は、このコマンドを実行して Python Hello World テンプレートからコンポーネントフォルダを初期化したときに生成される出力を示しています。
$ gdk component init -l python -t HelloWorld [2021-11-29 12:51:40] INFO - Initializing the project directory with a python component template - 'HelloWorld'. [2021-11-29 12:51:40] INFO - Fetching the component template 'HelloWorld-python' from Greengrass Software Catalog.
次の例は、このコマンドを実行してコミュニティコンポーネントからコンポーネントフォルダを初期化したときに生成される出力を示しています。
$ gdk component init -r aws-greengrass-labs-database-influxdb [2022-01-24 15:44:33] INFO - Initializing the project directory with a component from repository catalog - 'aws-greengrass-labs-database-influxdb'. [2022-01-24 15:44:33] INFO - Fetching the component repository 'aws-greengrass-labs-database-influxdb' from Greengrass Software Catalog.
ビルド
AWS IoT Greengrass
サービスにパブリッシュできる recipe とアーティファクトにコンポーネントのソースを構築します。は、GDKCLI設定ファイル で指定したビルドシステムGDKCLIを実行しますgdk-config.json
。このコマンドは、gdk-config.json
ファイルが存在するフォルダと同じフォルダで実行する必要があります。
このコマンドを実行すると、 はコンポーネントgreengrass-build
フォルダの フォルダにレシピとアーティファクトGDKCLIを作成します。はレシピを GDK CLI greengrass-build/recipes
フォルダに保存し、アーティファクトを greengrass-build/artifacts/
フォルダに保存します。componentName
/componentVersion
GDK CLI v1.1.0 以降を使用する場合、コンポーネントレシピは S3 バケットには存在するが、ローカルコンポーネントビルドフォルダには存在しないアーティファクトを指定できます。この機能を使用すると、機械学習モデルなどの大きなアーティファクトを有するコンポーネントを開発するときに、帯域幅の使用量を減らすことができます。
コンポーネントの構築後は、以下のいずれかの操作を実行すると Greengrass コアデバイス上でコンポーネントをテストできます。
-
AWS IoT Greengrass Core ソフトウェアを実行するデバイスとは異なるデバイスで開発する場合は、コンポーネントを公開して Greengrass コアデバイスにデプロイする必要があります。コンポーネントを AWS IoT Greengrass サービスにパブリッシュし、Greengrass コアデバイスにデプロイします。詳細については、「パブリッシュコマンド」および「デプロイの作成」を参照してください。
-
AWS IoT Greengrass Core ソフトウェアを実行するのと同じデバイスで開発する場合は、デプロイする AWS IoT Greengrass サービスにコンポーネントを発行するか、ローカルデプロイを作成してコンポーネントをインストールして実行できます。ローカルデプロイを作成するには、Greengrass を使用しますCLI。詳細については、Greengrass コマンドラインインターフェイスおよびローカルデプロイで AWS IoT Greengrass コンポーネントをテストするを参照してください。ローカルデプロイを作成するときは、
greengrass-build/recipes
を recipe フォルダとして、greengrass-build/artifacts
をアーティファクトフォルダとして使用します。
- 概要
-
$
gdk component build - 引数
-
[なし]
- 出力
-
次の例は、このコマンドを実行したときに生成される出力を示しています。
$ gdk component build [2021-11-29 13:18:49] INFO - Getting project configuration from gdk-config.json [2021-11-29 13:18:49] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2021-11-29 13:18:49] INFO - Building the component 'com.example.PythonHelloWorld' with the given project configuration. [2021-11-29 13:18:49] INFO - Using 'zip' build system to build the component. [2021-11-29 13:18:49] WARNING - This component is identified as using 'zip' build system. If this is incorrect, please exit and specify custom build command in the 'gdk-config.json'. [2021-11-29 13:18:49] INFO - Zipping source code files of the component. [2021-11-29 13:18:49] INFO - Copying over the build artifacts to the greengrass component artifacts build folder. [2021-11-29 13:18:49] INFO - Updating artifact URIs in the recipe. [2021-11-29 13:18:49] INFO - Creating component recipe in 'C:\Users\MyUser\Documents\greengrass-components\python\HelloWorld\greengrass-build\recipes'.
公開
このコンポーネントを AWS IoT Greengrass サービスに発行します。このコマンドは、ビルドアーティファクトを S3 バケットにアップロードし、レシピURIのアーティファクトを更新して、レシピからコンポーネントの新しいバージョンを作成します。は、GDKCLI設定ファイル で指定した S3 バケットと AWS リージョンGDKCLIを使用しますgdk-config.json
。このコマンドは、gdk-config.json
ファイルが存在するフォルダと同じフォルダで実行する必要があります。
GDK CLI v1.1.0 以降を使用する場合は、 --bucket
引数を指定して、 がコンポーネントのアーティファクトGDKCLIをアップロードする S3 バケットを指定できます。この引数を指定しない場合、 は名前が
で、 bucket
-region
-accountId
bucket
と region
は で指定した値gdk-config.json
、 accountId
は AWS アカウント ID である S3 バケットGDKCLIにアップロードします。バケットが存在しない場合、 はバケットGDKCLIを作成します。
GDK CLI v1.2.0 以降を使用している場合は、 --region
パラメータを使用して、GDKCLI設定ファイルで AWS リージョン 指定された を上書きできます。--options
パラメータを使用すると、追加のオプションを指定することも可能です。使用可能なオプションのリストについては、「Greengrass Development Kit CLI 設定ファイル」を参照してください。
このコマンドを実行すると、 は recipe GDK CLI で指定したバージョンでコンポーネントを発行します。を指定した場合NEXT_PATCH
、 は、まだ存在しない次のパッチバージョンGDKCLIを使用します。セマンティックバージョンは、major.minor.patch という番号方式になっています。詳細については、「セマンティックバージョンの仕様
注記
GDK CLI v1.1.0 以降を使用する場合、このコマンドを実行すると、 はコンポーネントがビルドされているGDKCLIかどうかを確認します。コンポーネントが構築されていない場合、 はコンポーネントを公開する前にコンポーネントGDKCLIを構築します。
- 概要
-
$
gdk component publish [--bucket] [--region] [--options] - 引数
-
-
-b
、--bucket
– (オプション) がコンポーネントアーティファクトを発行する S3 GDK CLI バケットの名前を指定します。この引数を指定しない場合、 は名前が
で、bucket
-region
-accountId
bucket
とregion
は で指定した値gdk-config.json
、accountId
は AWS アカウント ID である S3 バケットGDKCLIにアップロードします。バケットが存在しない場合、 はバケットGDKCLIを作成します。バケットが存在しない場合、 はバケットGDKCLIを作成します。
この機能は v1.1.0 GDK CLI 以降で使用できます。
-
-r
、--region
– (オプション) コンポーネントの作成 AWS リージョン 時に の名前を に指定します。この引数は、GDKCLI設定のリージョン名を上書きします。この機能は v1.2.0 GDK CLI 以降で使用できます。
-
-o
、--options
(オプション) コンポーネントを公開するためのオプションのリストを指定します。引数は有効なJSON文字列であるか、発行オプションを含むファイルへのJSONファイルパスである必要があります。この引数は、GDKCLI設定のオプションを上書きします。この機能は v1.2.0 GDK CLI 以降で使用できます。
-
- 出力
-
次の例は、このコマンドを実行したときに生成される出力を示しています。
$ gdk component publish [2021-11-29 13:45:29] INFO - Getting project configuration from gdk-config.json [2021-11-29 13:45:29] INFO - Found component recipe file 'recipe.yaml' in the project directory. [2021-11-29 13:45:29] INFO - Found credentials in shared credentials file: ~/.aws/credentials [2021-11-29 13:45:30] INFO - Publishing the component 'com.example.PythonHelloWorld' with the given project configuration. [2021-11-29 13:45:30] INFO - No private version of the component 'com.example.PythonHelloWorld' exist in the account. Using '1.0.0' as the next version to create. [2021-11-29 13:45:30] INFO - Uploading the component built artifacts to s3 bucket. [2021-11-29 13:45:30] INFO - Uploading component artifacts to S3 bucket: {bucket}. If this is your first time using this bucket, add the 's3:GetObject' permission to each core device's token exchange role to allow it to download the component artifacts. For more information, see https://docs.aws.amazon.com/greengrass/v2/developerguide/device-service-role.html. [2021-11-29 13:45:30] INFO - Not creating an artifacts bucket as it already exists. [2021-11-29 13:45:30] INFO - Updating the component recipe com.example.PythonHelloWorld-1.0.0. [2021-11-29 13:45:30] INFO - Creating a new greengrass component com.example.PythonHelloWorld-1.0.0 [2021-11-29 13:45:30] INFO - Created private version '1.0.0' of the component in the account.'com.example.PythonHelloWorld'.
リスト
利用可能なコンポーネントテンプレートとコミュニティコンポーネントのリストを取得します。
は Greengrass ソフトウェアカタログからコミュニティコンポーネントを取得し、コンポーネントテンプレートAWS IoT Greengrass リポジトリからコンポーネントテンプレート GitHub
このコマンドの出力を init コマンドにパスすることで、テンプレートとコミュニティコンポーネントからコンポーネントリポジトリを初期化できます。
- 概要
-
$
gdk component list [--template] [--repository] - 引数
-
-
-t
、--template
- (オプション) 利用可能なコンポーネントテンプレートを一覧表示するには、この引数を指定します。このコマンドは、各テンプレートの名前と言語を
の形式で出力します。たとえば、name
-language
HelloWorld-python
の場合、テンプレート名はHelloWorld
そして言語はpython
になります。 -
-r
、--repository
- (オプション) 利用可能なコミュニティコンポーネントリポジトリを一覧表示するには、この引数を指定します。
-
- 出力
-
次の例は、このコマンドを実行したときに生成される出力を示しています。
$ gdk component list --template [2021-11-29 12:29:04] INFO - Listing all the available component templates from Greengrass Software Catalog. [2021-11-29 12:29:04] INFO - Found '2' component templates to display. 1. HelloWorld-python 2. HelloWorld-java