Amazon web services Terraform aws任务定义容器.image包含无效字符

Amazon web services Terraform aws任务定义容器.image包含无效字符,amazon-web-services,terraform,terraform-provider-aws,Amazon Web Services,Terraform,Terraform Provider Aws,我正在开发一个有地形的aws基础设施 1.-我创建前端回购 resource "aws_ecr_repository" "frontend" { name = "${var.env}-frontend" } 2.-我创建了一个任务定义 3.-service.json文件 在那之后,我意识到了错误 “ClientException:Container.image包含无效字符。状态为” 代码:400,请求id:46e50fc0-71d9-4b15-b029-ecd9c91d59eb“ 这是我们的输

我正在开发一个有地形的aws基础设施

1.-我创建前端回购

resource "aws_ecr_repository" "frontend" { name = "${var.env}-frontend" }
2.-我创建了一个任务定义

3.-service.json文件

在那之后,我意识到了错误

“ClientException:Container.image包含无效字符。状态为” 代码:400,请求id:46e50fc0-71d9-4b15-b029-ecd9c91d59eb“

这是我们的输出
$aws\u ecr\u repository.frontend.repository\u url

-111111111.dkr.ecr.us-west-1.amazonaws.com/production-frontend


有什么想法吗?

我找到了更好的解决办法

要使用的资源的数据字段

data "template_file" "app" {
  template = file("terraform/templates/app.json")
  vars = {
    tf_env = "${terraform.workspace}"
    }
  }
*下面是JSON代码

[
  {
    "name": "app",
    "image": "image",
    "cpu": 1024,
    "memory": 2048,
    "networkMode": "vpc",
    "environment": [
            {"name": "PNI_API_HOSTNAME", "value": "app.${tf_env}.com"},
            {"name": "NODE_ENV", "value": "${tf_env}"}
        ],
    "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "app",
          "awslogs-region": "us-east-1",
          "awslogs-stream-prefix": "ecs"
        }
    },
    "portMappings": [
      {
        "containerPort": 3000,
        "hostPort": 3000
      }
    ]
  }
]

执行上述操作可以让您在JSON中拥有变量,因为JSON不允许您在没有事先定义的情况下添加它们

我找到了更好的解决办法

要使用的资源的数据字段

data "template_file" "app" {
  template = file("terraform/templates/app.json")
  vars = {
    tf_env = "${terraform.workspace}"
    }
  }
*下面是JSON代码

[
  {
    "name": "app",
    "image": "image",
    "cpu": 1024,
    "memory": 2048,
    "networkMode": "vpc",
    "environment": [
            {"name": "PNI_API_HOSTNAME", "value": "app.${tf_env}.com"},
            {"name": "NODE_ENV", "value": "${tf_env}"}
        ],
    "logConfiguration": {
        "logDriver": "awslogs",
        "options": {
          "awslogs-group": "app",
          "awslogs-region": "us-east-1",
          "awslogs-stream-prefix": "ecs"
        }
    },
    "portMappings": [
      {
        "containerPort": 3000,
        "hostPort": 3000
      }
    ]
  }
]

执行上述操作可以让您在JSON中拥有变量,因为JSON不允许您在没有事先定义的情况下添加它们

您是否可以发布
任务定义/service.json
,似乎没有传递正确的容器名称,或者在service.json中如何设置容器名称能否删除service.json文件中的最后一个
。您是否可以发布
任务定义/service.json
,似乎没有传递正确的容器名称,或者没有在service.json中设置容器名称。可以删除service.json文件中的最后一个