如何为 Fargate 任务定义指定操作系统系列?

Posted

技术标签:

【中文标题】如何为 Fargate 任务定义指定操作系统系列?【英文标题】:How to specify an operating System Family for Fargate task definition? 【发布时间】:2022-01-09 04:35:46 【问题描述】:

我正在使用 terraform 创建 Fargate 任务定义,但在指定运行时平台版本时遇到了一些困难。根据 AWS 的docs 任务定义operatingSystemFamily 属性确实存在。它的默认值为LINUX。我想将其更改为 Windows Server 2019 Core,因为我想在 Fargate 上使用 Windows 容器。

话虽如此,我无法在 Terraform 的 aws_ecs_task_definition 资源文档中找到它。

这是我的任务定义:

resource "aws_ecs_task_definition" "transform_service" 
  family                   = "$var.app_name-transform-service-task"
  network_mode             = "awsvpc"
  requires_compatibilities = ["FARGATE"]
  cpu                = 2 * 1024  #2 vCPU
  memory             = 16 * 1024 # 16GB
  execution_role_arn = aws_iam_role.transform_service_task_execution_role.arn
  
  container_definitions = jsonencode([
    name      = "transform-service-container-$var.environment"
    image     = "$var.transform_service_repository_url:latest"
    essential = true
    environment = [
      "name" : "DOTNET_ENVIRONMENT", "value" : "Development"
    ]
    ,

  ])

【问题讨论】:

这很有趣。我在 TF 文档或任何示例中找不到。但是,您可以为 CloudFormation 找到它作为运行时平台。 docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/… 【参考方案1】:

尚不支持。 GitHub issues 已经存在:

aws_ecs_task_definition missing runtimePlatform #21984 Add support for FARGATE Windows Containers and ARM based Containers

准备好公关

Add support for FARGATE Windows Containers and ARM based Containers

【讨论】:

非常感谢,马辛!现在这是有道理的。我在 Terraform github 页面上搜索了问题,但找不到它 我检查了aws_ecs_service terraform 资源,它似乎也没有该属性。我在这里打开了一个问题:github.com/hashicorp/terraform-provider-aws/issues/22033

以上是关于如何为 Fargate 任务定义指定操作系统系列?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 celery 任务日志指定文件路径?

如何为 Pandas 系列表达式指定类型提示

Terraform Fargate 任务定义请求执行角色

限制给定任务定义的并发 Fargate 任务数

如何在 ECS Fargate 任务定义中配置主机名

带有 docker hub 映像的 ECS FARGATE TASK 定义