🏴
Greengrass Development Kit CLIで作成したカスタムコンポーネントのデプロイ先アカウントを指定する
Greengrass Development Kit CLIでGreengrassのカスタムコンポーネントを作り、デプロイ先のアカウントを指定するにつまったのでメモ
この記事で書きたいこと
CLIのオプションにAWS CLIで作成したプロファイルを指定するオプションが無いため、デプロイ時のAWSアカウントを指定する場合は、環境変数AWS_PROFILE
で指定します
AWS_PROFILE=xxxxx gdk component publish --bucket DeployBucket
-
xxxxx
はAWS CLIで作成したプロファイル名
つまったこと
- Greengrass Development Kit CLIでデプロイ先のアカウントを指定する方法がわかりませんでした
- helpオプションを確認しても定義されていませんでした
-
--aws-profile
,--profile
などのオプションを指定してもエラーになります(定義されていないので当たり前)
-
コンポーネントの作成〜デプロイまでの手順(チュートリアル)
Greengrass Development Kit CLIのインストール
以下を参考にインストール
コンポーネントをテンプレートから作成する手順
テンプレート一覧確認
gdk component list --template
[2023-02-17 11:31:33] INFO - Listing all the available component templates from Greengrass Software Catalog.
[2023-02-17 11:31:33] INFO - Found '2' component templates to display.
1. HelloWorld-python
2. HelloWorld-java
テンプレートからコンポーネントを作成する
プロジェクトフォルダを作成してテンプレートを取得します
mkdir HelloWorld
cd HelloWorld
gdk component init --template HelloWorld --language python
設定ファイルを編集します
gdk-config.json
{
"component": {
"com.example.PythonHelloWorld": {
"author": "Author",
"version": "NEXT_PATCH",
"build": {
"build_system": "zip"
},
"publish": {
"bucket": "DeployBucket",
"region": "ap-northeast-1"
}
}
},
"gdk_version": "1.0.0"
}
recipe.yml
RecipeFormatVersion: "2020-01-25"
ComponentName: "{COMPONENT_NAME}"
ComponentVersion: "{COMPONENT_VERSION}"
ComponentDescription: "This is simple Hello World component written in Python."
ComponentPublisher: "{COMPONENT_AUTHOR}"
ComponentConfiguration:
DefaultConfiguration:
Message: "World"
Manifests:
- Platform:
os: all
Artifacts:
- URI: "s3://BUCKET_NAME/COMPONENT_NAME/COMPONENT_VERSION/HelloWorld.zip"
Unarchive: ZIP
Lifecycle:
Run: "python3 -u {artifacts:decompressedPath}/HelloWorld/main.py {configuration:/Message}"
-
Artifacts
、Lifecycle.Run
で定義しているHelloWorld
はプロジェクトのディレクトリ名と一致させます
ビルド
gdk component build
デプロイ
CLIのオプションにAWS CLIで作成したプロファイルを指定するオプションが無いため、環境変数AWS_PROFILE
で指定します
AWS_PROFILE=xxxxx gdk component publish --bucket DeployBucket
指定したプロファイルのアカウントにデプロイされました
- 2回デプロイしたため、バージョンがインクリメントされました
-
1.0.0
->1.0.1
-
以上です
参考
Discussion