![](/img/trans.png)
[英]How to run AWS ECS Task with CloudFormation overriding container environment variables
[英]How to run AWS ECS Task overriding environment variables
要通過 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 (..)
對逆さま的回答的一個小補充。 您可能還想添加集群的詳細信息。 當我運行上面的代碼時,我得到了一個ClusterNotFoundException
。
這對我有用:
aws ecs run-task --overrides file://overrides.json --task-definition (..) --cluster (..)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.