如何为 Fargate 任务定义指定操作系统系列?
How to specify an operating System Family for Fargate task definition?
我正在使用 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"
}]
},
])
}
暂不支持。已经有 GitHub 个问题:
- aws_ecs_task_definition missing runtimePlatform #21984
- Add support for FARGATE Windows Containers and ARM based Containers
PR 就绪:
resource "aws_ecs_task_definition" "test" {
family = "test"
requires_compatibilities = ["FARGATE"]
network_mode = "awsvpc"
cpu = 1024
memory = 2048
container_definitions = <<TASK_DEFINITION
[
{
"name": "iis",
"image": "mcr.microsoft.com/windows/servercore/iis",
"cpu": 1024,
"memory": 2048,
"essential": true
}
]
TASK_DEFINITION
runtime_platform {
operating_system_family = "WINDOWS_SERVER_2019_CORE"
cpu_architecture = "X86_64"
}
}
此处发布说明:
https://github.com/hashicorp/terraform-provider-aws/pull/22016
Adds platform runtime properties and validation based on
https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html
runtime_platform {
operating_system_family = "WINDOWS_SERVER_2019_CORE"
cpu_architecture = "X86_64" }
我正在使用 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"
}]
},
])
}
暂不支持。已经有 GitHub 个问题:
- aws_ecs_task_definition missing runtimePlatform #21984
- Add support for FARGATE Windows Containers and ARM based Containers
PR 就绪:
resource "aws_ecs_task_definition" "test" {
family = "test"
requires_compatibilities = ["FARGATE"]
network_mode = "awsvpc"
cpu = 1024
memory = 2048
container_definitions = <<TASK_DEFINITION
[
{
"name": "iis",
"image": "mcr.microsoft.com/windows/servercore/iis",
"cpu": 1024,
"memory": 2048,
"essential": true
}
]
TASK_DEFINITION
runtime_platform {
operating_system_family = "WINDOWS_SERVER_2019_CORE"
cpu_architecture = "X86_64"
}
}
此处发布说明: https://github.com/hashicorp/terraform-provider-aws/pull/22016
Adds platform runtime properties and validation based on https://docs.aws.amazon.com/AmazonECS/latest/developerguide/task_definition_parameters.html runtime_platform { operating_system_family = "WINDOWS_SERVER_2019_CORE" cpu_architecture = "X86_64" }