您必須提供一個JSON文檔,如--overrides
option所述。
{
"containerOverrides": [
{
"name": "string",
"command": ["string", ...],
"environment": [
{
"name": "string",
"value": "string"
}
...
]
}
...
],
"taskRoleArn": "string"
}
您必須指定容器來獲取環境覆蓋的name
,並指定environment
鍵 - 值對的列表。
您可以在參數中指定JSON文檔,也可以將文件路徑參數傳遞給任務。我將展示兩種方式。
在線傳遞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 (..)