Adr*_*sch 1 amazon-web-services amazon-ecs terraform aws-fargate terraform-provider-aws
我的地形部署遇到了一个小问题。
新的任务定义是在部署期间创建的。然后我也在网络控制台中看到了这一点。ecs 现在应该实际使用这个新任务定义并更新它。相反,会再次部署最新的修订版。
我的期望是,如果我创建一个新的任务定义并将 arn 从该定义传递到 ecs,它将被部署。
不幸的是,我不知道从这里该去哪里。
我使用以下配置创建了一个 ecs 服务:
resource "aws_ecs_service" "service" {
name = "${var.appPrefix}-api-service-${var.envPrefix}"
cluster = var.ecsClusterId
task_definition = aws_ecs_task_definition.ecsTaskDefinition.arn
platform_version = "1.3.0"
desired_count = 1
deployment_minimum_healthy_percent = 50
deployment_maximum_percent = 200
launch_type = "FARGATE"
scheduling_strategy = "REPLICA"
wait_for_steady_state = true
force_new_deployment = true
network_configuration {
security_groups = [var.ecsSecurityGroupId]
subnets = [var.privateSubnet1Id, var.privateSubnet2Id]
assign_public_ip = false
}
load_balancer {
target_group_arn = var.targetGroupId
container_name = var.containerName
container_port = var.httpPort
}
lifecycle {
ignore_changes = [task_definition, desired_count]
}
}
Run Code Online (Sandbox Code Playgroud)
我的任务定义如下:
resource "aws_ecs_task_definition" "ecsTaskDefinition" {
family = "${var.appPrefix}-api-ECSTaskDefinition"
task_role_arn = var.ecsTaskRoleArn
execution_role_arn = var.ecsTaskExecutionRoleArn
network_mode = "awsvpc"
requires_compatibilities = ["FARGATE"]
cpu = "512"
memory = "1024"
container_definitions = <<DEFINITION
[...]
DEFINITION
}
Run Code Online (Sandbox Code Playgroud)
〜编辑:这是地形日志:
# module.ecs_api_module.aws_ecs_task_definition.ecsTaskDefinition must be replaced
-/+ resource "aws_ecs_task_definition" "ecsTaskDefinition" {
~ arn = "arn:aws:ecs:*****:********:task-definition/project-name-api-ECSTaskDefinition:507" -> (known after apply)
~ container_definitions = (sensitive) # forces replacement
~ id = "project-name-api-ECSTaskDefinition" -> (known after apply)
- ipc_mode = "" -> null
- pid_mode = "" -> null
~ revision = 507 -> (known after apply)
- tags = {} -> null
~ tags_all = {} -> (known after apply)
# (8 unchanged attributes hidden)
}
Run Code Online (Sandbox Code Playgroud)
ignore_changes
从资源中删除属性ecs_service
或至少删除task_definition
.
lifecycle {
ignore_changes = [desired_count]
}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
1304 次 |
最近记录: |