CLI経由で環境変数を上書きするには、 AWS ECSコマンドラインリファレンス に従って--overrides (structure)
を使用できます。
コマンドラインで名前と値のペア(構造またはJSON)を渡す方法は?
[
{ "name" : "NAME", "value" : "123" },
{ "name" : "DATE", "value" : "1234-12-12" },
{ "name" : "SCRIPT", "value" : "123456" }
]
AWS ECS CLIを使用して上記の環境変数をオーバーライドする方法を探しています。何かのようなもの:
aws ecs run-task --overrides <<just environment vars here>> --task-definition ...
ドキュメントは明確ではありません。私はググったが助けられなかった。
--overrides
オプション に記載されているJSONドキュメントを提供する必要があります。
{
"containerOverrides": [
{
"name": "string",
"command": ["string", ...],
"environment": [
{
"name": "string",
"value": "string"
}
...
]
}
...
],
"taskRoleArn": "string"
}
コンテナのname
を指定して環境のオーバーライドを取得し、environment
キーと値のペアのリストを指定する必要があります。
引数を使用してインラインでJSONドキュメントを指定するか、ファイルパス引数をタスクに渡すことができます。両方の方法を示します。
コマンドは次のようになります(値CONTAINER_NAME_FROM_TASK
を入力してください)。
aws ecs run-task --overrides '{ "containerOverrides": [ { "name": "CONTAINER_NAME_FROM_TASK", "environment": [ { "name": "NAME", "value": "123" }, { "name": "DATE", "value": "1234-12-12" }, { "name": "SCRIPT", "value": "123456" } ] } ] }' --task-definition (...)
見た目はかなり醜く、編集するのは面倒です。また、Unix-yシステムでのみ機能し、Windowsでは引用符のエスケープが必要になります。
したがって、別の方法として、ファイルパスをAWS CLIに渡して、ファイルからオーバーライドJSONをロードさせることもできます。
ファイルを作成し、それをoverrides.json
と呼び、同じJSONをそのファイルに入れます。
{
"containerOverrides": [{
"name": "CONTAINER_NAME_FROM_TASK",
"environment": [{
"name": "NAME",
"value": "123"
}, {
"name": "DATE",
"value": "1234-12-12"
}, {
"name": "SCRIPT",
"value": "123456"
}]
}]
}
次に、ファイルが現在のディレクトリにあると仮定します。
aws ecs run-task --overrides file://overrides.json --task-definition (..)
あなたのファイルがファイルシステムの他の場所にあり、あなたがLinux/Unix-yシステム:
aws ecs run-task --overrides file:///path/to/overrides.json --task-definition (..)
あなたのファイルがファイルシステムの他の場所にあり、これをWindows:
aws ecs run-task --overrides file://DRIVE_LETTER:\path\to\overrides.json --task-definition (..)