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
    ]
...
}

我预计问题是以下类型之一:

  1. 选择的子网可能因基于变量的选择而不同
  2. 使用间接数据引用(而不是直接资源引用)可能会导致问题
  3. 任务定义 JSON 编码问题

导致此类问题的其他原因可能是什么。

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)