簡體   English   中英

如何運行 AWS ECS 任務覆蓋環境變量

[英]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文檔,也可以將文件路徑參數傳遞給任務。 我將展示兩種方式。

在線傳遞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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM