问题描述
我们正在使用 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 (将#修改为@)