如何解决terraform 用于基础设施生成的幂等错误的可能原因
我们正在使用 terraform 使用自定义任务定义在 AWS 基础设施中启动 ECS 容器。 由于我们不需要每次都启动完整的基础设施,因此隔离了仅用于启动 ECS 容器的部分。
启动正常进行,直到 ECS 启动代码被隔离,然后 ECS 服务启动开始给出指示幂等问题的错误。
│ Error: error creating target service: error waiting for ECS service (sandBox) creation: InvalidParameterException: Creation of service was not idempotent.
│
│ with aws_ecs_service.ecs_service_target,│ on aws_infra_ecs.tf line 100,in resource "aws_ecs_target" "ecs_service_target":
│ 100: resource "aws_ecs_target" "ecs_service_target" {
│
ECS 服务定义如下:
resource "aws_ecs_service" "ecs_service_target" {
desired_count = 1
name = "target"
launch_type = "FARGATE"
cluster = data.aws_ecs_cluster.cluster_target.id
enable_ecs_managed_tasks = true
task_deFinition = aws_ecs_task_deFinition.target_taskdef.arn
platform_version = "1.4.0"
...
load_balancer {
...
target_group_arn = data.aws_lb_target_group.aws_target.arn
}
...
network_configuration {
...
security_groups = [ data.aws_security_group.target_sg.id ]
subnets = [ "subet-5767c3c2" ] # A dynamic subnet reference id is used here
}
depends_upon = [
var.second_service_name,aws_ecs_task_deFinition.target_taskdef,data.aws_efs_access_point.target_ap
]
...
}
我预计问题是以下类型之一:
- 选择的子网可能因基于变量的选择而不同
- 使用间接数据引用(而不是直接资源引用)可能会导致问题
- 任务定义 JSON 编码问题
导致此类问题的其他原因可能是什么。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。