【问题标题】:Create task definition revision, update docker tag and update service with .NET使用 .NET 创建任务定义修订、更新 docker 标签和更新服务
【发布时间】:2020-05-08 21:47:19
【问题描述】:

作为使用 .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 映像,然后使用现有定义和修改后的 docker 映像调用RegisterTaskDefinitionAsync

【问题讨论】:

    标签: amazon-web-services aws-sdk amazon-ecs aws-sdk-net


    【解决方案1】:

    UI 会自动进行多个 API 调用,并让您可以选择从以前的版本创建新版本。为了让你达到同样的效果,你可以尝试这样的事情。

    首先使用族前缀列出任务定义(假设您使用图像名称或某些前缀创建任务定义)。

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

    使用 ListTaskDefinitionsResponse,选择最新的任务定义 ARN 并进行另一个 API 调用以获得完整的任务定义响应。

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

    现在,您拥有最新的 TaskDefinition 对象,您可以在其中修改图像版本并再次发布。

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

    AWS .NET 开发工具包参考 - https://docs.aws.amazon.com/sdkfornet/v3/apidocs/items/ECS/TECSClient.html

    让我知道你的想法!!

    【讨论】:

      猜你喜欢
      • 2022-11-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多