json 为什么会出现“Container.name不应为空”的错误?

tpgth1q7  于 2023-03-13  发布在  其他
关注(0)|答案(2)|浏览(125)

我们正在使用terraform导入ECS解决方案,由于某种原因,我无法通过此错误。
aws_ecs_任务定义.群集名称:客户端异常:Container.name不应为空。2017年2月9日23:35:1状态代码:400
我相信这是来自json文件service-prod-server.json

#aws_ecs_task_definition
resource "aws_ecs_task_definition" "cluster-name" {
  family = "cluster-name"
  container_definitions = "${file("task-definitions/service-prod-server.json")}"
}

这是service-prod-server.json配置的顶部,我在那里找到了名称。

[
  {
    "name": "containername",
    "memory": 7000,
    "image": "imagename",
    "disableNetworking": false,
    "readonlyRootFilesystem": false,

我也定义了这个配置。

#aws_ecs_container_definition
data "aws_ecs_container_definition" "cluster-name" {
  task_definition = "${aws_ecs_task_definition.cluster-name.id}"
  container_name = "containername"
}

让我知道你们的想法

2fjabf4q

2fjabf4q1#

对我来说,我错误地标记了环境变量key:

{ "key": "myvariable", "value": "myvalue" }

代替

{ "name": "myvariable", "value": "myvalue" }

不同之处在于,我编写的是key而不是name,这破坏了整个容器定义,因此产生了这个错误。

jgwigjjp

jgwigjjp2#

值得注意的是,当我尝试将整个任务定义传递给container_definitions时,我在Terraform中遇到了同样的错误。注意,container_definitions选项应该只设置到任务定义的containerDefinitions部分(而不是整个部分)。

相关问题