Обновление определений задач в ECS

В настоящее время я пытаюсь автоматизировать процесс сборки и развертывания с помощью CodePipeline. После того, как мой код завершит сборку в codebuild, я хочу обновить определение задачи и обновить свой сервис через aws cli через CodeBuild.

У меня проблема с обновлением сервиса, потому что я не могу отследить номер ревизии. Есть ли способ сообщить обновленной службе, чтобы использовать последнюю версию? Я знаю, что вы можете указать json, но как я могу манипулировать номером ревизии, чтобы служба указывала на правильное изображение в моем реестре?

1 ответ

Решение

Чтение немного документации API Amazon, не говорит вам, какое изображение было загружено последним. Рекомендую, чтобы в процессе выгрузки фиксируется версия, чтобы можно было установить ее в сервисе.

Я оставляю вам ответ API, когда вы перечисляете изображения.

Синтаксис ответа:

{
   "imageIds": [ 
      { 
         "imageDigest": "string",
         "imageTag": "string"
      }
   ],
   "nextToken": "string"
}

Возможный процесс может быть:

  • Получить тег вашего репо:

TAG=$(git describe --always)

  • Создайте изображение с этим тегом:

docker build . -t [acount].dkr.ecr.[zone].amazonaws.com/[app]:TAG

  • Нажмите на изображение:

docker push [acount].dkr.ecr.[zone].amazonaws.com/[app]:TAG

  • Обновите задачу с изображением:

  • Обновите сервис с задачей

Надеюсь, это поможет вам

Другие вопросы по тегам