Создайте редакцию определения задачи, обновите тег docker и обновите сервис с помощью. NET - PullRequest
0 голосов
/ 22 января 2020

В рамках автоматизированного развертывания с помощью SDK. NET AWS я пытаюсь создать новую редакцию определения задачи, обновить метку тега изображения docker моей недавно развернутой версией, а затем обновить службу до используйте эту новую ревизию.

У меня есть что-то вроде этого:

      var taskDefinitionResponse = await _ecsClient.RegisterTaskDefinitionAsync(new RegisterTaskDefinitionRequest
      {
        ContainerDefinitions = new List<ContainerDefinition>(new[] {new ContainerDefinition(){Image = "new image:v123"}})
      });

      await _ecsClient.UpdateServiceAsync(new UpdateServiceRequest()
      {
        TaskDefinition = taskDefinitionResponse.TaskDefinition.TaskDefinitionArn,

      });

Меня беспокоит приведенный выше код, который не дублирует существующее определение задачи, например, в AWS Консоль, когда Вы нажимаете «Создать новую ревизию», вам нужно выбрать определение задачи, чтобы кнопка создала дубликат, чтобы вы могли затем изменить его и сохранить новую ревизию, поэтому мне понадобится код, который получает существующее определение задачи, а затем просто измените docker image, а затем вызовите RegisterTaskDefinitionAsync с существующим определением и измененным docker image?

1 Ответ

0 голосов
/ 22 января 2020

Пользовательский интерфейс автоматически выполняет несколько вызовов API и дает вам возможность создать новую ревизию из предыдущих. Чтобы добиться того же, вы можете попробовать что-то вроде этого.

Сначала перечислите TaskDefinitions, используя префикс семейства (при условии, что вы создаете определения задач, используя имя изображения или некоторый префикс).

Task<ListTaskDefinitionsResponse> ListTaskDefinitionsAsync(
         ListTaskDefinitionsRequest request,
         CancellationToken cancellationToken
)

Используя ListTaskDefinitionsResponse, выберите ARN для определения последней задачи и выполните еще один вызов API для получения полного ответа определения задачи.

Task<DescribeTaskDefinitionResponse> DescribeTaskDefinitionAsync(
         DescribeTaskDefinitionRequest request,
         CancellationToken cancellationToken
)

Теперь у вас есть последний объект TaskDefinition, где вы можете измените версию изображения и опубликуйте sh снова.

Task<RegisterTaskDefinitionResponse> RegisterTaskDefinitionAsync(
         RegisterTaskDefinitionRequest request,
         CancellationToken cancellationToken
)

AWS. NET Справочник по SDK - https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/ECS/TECSClient.html

Дайте мне знать ваше мысли !!.

...