我收到 terraform ecs 错误

Dev*_*von 3 json amazon-web-services terraform

我们正在使用 terraform 导入 ECS 解决方案,但由于某种原因,我无法通过此错误。

aws_ecs_task_definition.clustername: ClientException: Container.name should not be null or empty. 09-Feb-2017 23:35:1 status code: 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")}"
}
Run Code Online (Sandbox Code Playgroud)

这是 service-prod-server.json 配置的顶部部分。我在那里有名字。

[
  {
    "name": "containername",
    "memory": 7000,
    "image": "imagename",
    "disableNetworking": false,
    "readonlyRootFilesystem": false,
Run Code Online (Sandbox Code Playgroud)

我也定义了这个配置。

#aws_ecs_container_definition
data "aws_ecs_container_definition" "cluster-name" {
  task_definition = "${aws_ecs_task_definition.cluster-name.id}"
  container_name = "containername"
}
Run Code Online (Sandbox Code Playgroud)

让我知道你们的想法

Mic*_*son 7

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

{ "key": "myvariable", "value": "myvalue" }
Run Code Online (Sandbox Code Playgroud)

代替

{ "name": "myvariable", "value": "myvalue" }
Run Code Online (Sandbox Code Playgroud)

不同之处在于我写了key而不是name打破了整个容器定义,这给了我这个错误。

  • 这并没有回答专门关于“Container.name”的原始问题,但是我投票,因为我遇到了完全相同的问题,谷歌搜索把我带到了这里,这种语法帮助我解决了我的问题,我正在做类似“{”的事情"myvariable": "value"}` - 我根本没有提供名称,所以谢谢! (6认同)

Mik*_*ike 5

值得一提的是,当我尝试将整个任务定义传递给container_definitions. 请注意,该container_definitions选项应仅设置为任务定义的containerDefinitions部分(而不是整个内容)。