使用Terraform创建Fargate任务定义时如何指定操作系统家族?
你需要在aws_ecs_task_definition资源中新增runtime_platform配置块,AWS的operatingSystemFamily属性对应这个块下的operating_system_family参数,修改后的配置如下:
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 # 新增运行时平台配置 runtime_platform { operating_system_family = "WINDOWS_SERVER_2019_CORE" cpu_architecture = "X86_64" } container_definitions = jsonencode([{ name = "transform-service-container-${var.environment}" image = "${var.transform_service_repository_url}:latest" essential = true environment = [{ "name" : "DOTNET_ENVIRONMENT", "value" : "Development" }] }]) }
注意事项
- 需要使用v3.74.0及以上版本的HashiCorp AWS Provider,更低版本不支持
runtime_platform配置 - 操作系统家族的取值为AWS规定的枚举值,不能直接使用
Windows Server 2019 Core字符串 - Fargate Windows容器仅支持X86_64架构,不需要修改CPU架构参数
内容的提问来源于stack exchange,提问作者Georgi Koemdzhiev
相关产品推荐
相关产品推荐

