AWS IoT Greengrass Development Kit Command-Line Interface - AWS IoT Greengrass

AWS IoT Greengrass Development Kit Command-Line Interface

AWS IoT Greengrass Development Kit Command-Line Interface (GDK CLI) は、カスタム Greengrass コンポーネントの開発に役立つ機能を提供します。GDK CLI を使用して、カスタムコンポーネントを作成、ビルドおよびパブリッシュできます。GDK CLI でコンポーネントリポジトリを作成する場合、Greengrass Software Catalog (Greengrass ソフトウェアカタログ) のテンプレートまたはコミュニティコンポーネントから開始できます。次に、ファイルを ZIP アーカイブとしてパッケージ化する、Maven または Gradle 構築スクリプトを使用する、またはカスタム構築コマンドを実行する構築システムを選択できます。コンポーネントの作成後、GDK CLI を使用して AWS IoT Greengrass サービスにパブリッシュして、Greengrass コアデバイスにコンポーネントをデプロイするための AWS IoT Greengrass コンソールまたは API を使用できるようにします。

GDK CLI を使用せずに Greengrass コンポーネントを開発する場合は、コンポーネントの新しいバージョンを作成するたびにコンポーネント recipe ファイルでバージョンとアーティファクト URI を更新する必要があります。GDK CLI を使用すると、新しいバージョンのコンポーネントをパブリッシュするたびに、自動的にバージョンとアーティファクト URI を更新できます。

GDK CLI はオープンソースであり、GitHub で利用できます。GDK CLI は、コンポーネント開発のニーズに合わせてカスタマイズおよび拡張できます。GitHub リポジトリで Issue やプルリクエストを開くことをお勧めます。GDK CLI ソースは、次のリンク先で見つけることができます。https://github.com/aws-greengrass/aws-greengrass-gdk-cli

前提条件

Greengrass Development Kit CLI をインストールして使用するには、次のものが必要です。

  • AWS アカウント。アカウントをお持ちでない場合は、「AWS アカウント のセットアップ」を参照してください。

  • インターネットに接続された Windows、macOS、または Unix のような開発用コンピュータ。

  • GDK CLI バージョン 1.1.0 以降の場合、Python 3.6 以降がインストールされた開発用コンピュータ。

    GDK CLI バージョン 1.0.0 の場合、Python 3.8 以降がインストールされた開発用コンピュータ。

  • Git が開発コンピュータにインストールされていること。

  • 開発コンピュータに AWS Command Line Interface (AWS CLI) がインストールされており、認証情報が設定されていること。詳細については、「AWS Command Line Interface ユーザーガイド」の「AWS CLI のインストール、更新、アンインストール」と「AWS CLI の設定」を参照してください。

    注記

    Raspberry Pi または別の 32 ビット ARM デバイスを使用する場合は、AWS CLI V1.AWS CLI をインストールします。V2 は 32 ビット ARM デバイスでは利用できません。詳細については、「AWS CLI バージョン 1 のインストール、更新、およびアンインストール」を参照してください。

  • GDK CLI を使用して AWS IoT Greengrass サービスにコンポーネントをパブリッシュするには、次の権限が必要です。

    • s3:CreateBucket

    • s3:GetBucketLocation

    • s3:PutObject

    • greengrass:CreateComponentVersion

    • greengrass:ListComponentVersions

  • GDK CLI を使用して、ローカルファイルシステムではなく S3 バケット内にアーティファクトが存在するコンポーネントを構築するには、以下の権限が必要です。

    • s3:ListBucket

    この機能は GDK CLI v1.1.0 以降で利用できます。

変更ログ

次の表に、GDK CLI の各バージョンの変更をまとめています。詳細については、GitHub の「GDK CLI リリースページ」を参照してください。

バージョン

変更

1.6.2

バグ修正と機能向上
  • 相対パスが原因で Windows gradlew.bat が動作しない問題を修正しました。

  • ログ記録、テスト、パッケージングの軽微な改善。

1.6.1

バグ修正と機能向上
  • CLI 引数解析のセキュリティ修正を追加しました。

  • GDK がデフォルトの GTF バージョンとして最新の Greengrass Testing Framework (GTF) リリース名を取得できるようになりました。

  • GDK が、最新バージョンに更新する古いバージョンの GTF を使用するお客様にレコメンデーションできるようになりました。

1.6.0

新機能
  • component build および component publish コマンド中に Greengrass レシピスキーマに対するレシピ検証チェックを追加しました。この更新により、デベロッパーは、コンポーネント作成プロセスの早い段階でコンポーネントレシピ内で実行可能な問題を特定できます。

  • test-e2e init コマンドでプルダウンできる信頼度テストスイートをテンプレートに追加しました。この信頼度テストスイートには、基本的なコンポーネントテストの必要性に合わせて使用および拡張できる 8 つの汎用テストが含まれています。

バグ修正と機能向上
  • test-e2e コマンドで使用されるデフォルトの Greengrass Testing Framework (GTF) バージョンをバージョン 1.2.0 に更新します。

1.5.0

バグ修正と機能向上

build_systemzip の場合、excludes ビルドオプションで認識されるパターンを更新しました。このバージョンでは、ワイルドカード文字に基づいてパス名に一致するグロブパターンが認識されるようになりました。これにより、除外するディレクトリのカスタム仕様が可能になります。

1.4.0
新機能
  • 既存の GDK 設定ファイル内のフィールドを変更するインタラクティブプロンプトを起動する新しい config コマンドが追加されています。

  • レシピサイズが Greengrass の要件 (16000 バイト未満) 以内であることを確認してから続行するように gdk component build および gdk component publish コマンドが変更されています。

バグ修正と機能向上
  • レシピの構文エラーが原因でビルドを完了できない場合に、認識できるように gdk component build コマンドの出力にさらにロギングを追加します。

  • Open Test Framework の名前が Greengrass Testing Framework に変更されたため、otf-options および otf-version の名前を gtf-options および gtf-version にそれぞれ変更します。

1.3.0
新機能
  • Open Test Framework を使用したコンポーネントのエンドツーエンドのテストをサポートする新しい test-e2e コマンドを追加します。

  • 新しい設定オプション zip_name を追加して、zip ビルドシステムで設定可能な zip ファイル名をサポートします。

  • GDK 設定ファイル内の region プロパティをオプションにします。

バグ修正と機能向上
  • --name 引数を使用して GDK プロジェクトを初期化する際に、指定されたテンプレートまたはリポジトリが存在しない場合でも、新しいディレクトリが作成される問題を修正します。

1.2.3
バグ修正と機能向上
  • 不正なエラー処理によりバケット作成に失敗する問題を修正しました。

  • コンポーネント recipe のリスト構造が削除される不具合を修正しました。

1.2.2
バグ修正と機能向上
  • recipe のキーは大文字と小文字を区別しなくなりました。

  • 新しいバケットを作成する前に、バケットが AWS リージョン に存在し、ユーザーがアクセス可能かどうかを判断するチェックを追加します。ユーザーに GetBucketLocation アクセス許可が必要です。

  • GDK CLI 設定ファイルの excludes キーワードに関する問題を修正しました。

1.2.1
バグ修正と機能向上
  • gdk-config.json ファイル内のリージョン設定エントリで、カナダ (中部) (ca-central-1) の AWS リージョン を受け入れるように変更しました。

  • publish コマンドに対する --region GDK CLI 引数の問題を修正しました。

1.2.0
新機能
  • options エントリを GDK CLI 構成ファイルの build 構成に追加しました。   zip ビルドシステムを使用する場合、特定のファイルを zip アーティファクトから除外するために、optionsexcludes を使用できるようにしました。

  • Gradle Wrapper を使用してコンポーネントをビルドするために、 gradlew ビルドシステムを追加しました。

  • gradle のビルドオプションに、Kotlin DSL ビルドファイルのサポートを追加しました。

  • GDK CLI 設定ファイル内で、publish 設定に options エントリを追加しました。options の下で file_upload_args がサポートされ、ファイルを Amazon S3 にアップロードする際に、追加の引数を使用可能にしました。

バグ修正と機能向上
  • ビルドコマンドの実行前に、Gradle ビルドがクリーンアップを実行しなかった問題を修正しました。

  • ビルドコマンドが失敗した際、ビルド処理が終了しなかった問題を修正しました。

  • gdk component list コマンドの出力形式を改善しました。

1.1.0

新機能
  • Gradle のbuild system (ビルドシステム) のサポートが追加されました。

  • Windows デバイスでの Maven の build system (ビルドシステム) のサポートが追加されました。

  • component publish コマンドに --bucket 引数が追加されました。この引数を使用して、GDK CLI がコンポーネントのアーティファクトをアップロードするバケットを正確に指定できます。

  • component init コマンドに --name 引数が追加されました。このオプションを使用して、GDK CLI がコンポーネントを初期化するフォルダを指定できます。

  • S3 バケットには存在するが、ローカルコンポーネントビルドフォルダには存在しないコンポーネントアーティファクトのサポートが追加されました。この機能を使用すると、機械学習モデルなどの大きなコンポーネントアーティファクトの帯域幅コストを削減できます。

バグ修正と機能向上
  • component publish (コンポーネントのパブリッシュ) コマンドを更新して、コンポーネントをパブリッシュする前に構築されているかどうかをチェックします。コンポーネントが構築されていない場合は、このコマンドで コンポーネントを構築できるようになりました。

  • ZIP ファイル名に大文字が含まれていると、Windows デバイスで zip ビルドシステムが構築できない問題を修正しました。

  • 3.8 以前のバージョンの Python を実行するデバイスのログメッセージの形式を改善し、デフォルトのログレベルを INFO に変更しました。

  • Python の最小バージョン要件を Python 3.6 に変更しました。

1.0.0

当初のバージョン