AWS Cloudformation创建没有容器定义的任务定义

时间:2019-05-27 09:56:57

标签: amazon-web-services amazon-cloudformation amazon-ecs

以下CloudFormation脚本创建任务定义,但似乎未正确创建容器定义。谁能告诉我为什么?

{
"AWSTemplateFormatVersion": "2010-09-09",
"Description": "Test stack for troubleshooting task creation",
"Parameters": {
    "TaskFamily": {
        "Description": "The task family to associate the task definition with.",
        "Type": "String",
        "Default": "Dm-Testing"
    }
},
"Resources": {
    "TaskDefinition": {
        "Type": "AWS::ECS::TaskDefinition",
        "Properties": {
            "Family": {
                "Ref": "TaskFamily"
            },
            "RequiresCompatibilities": [
                "EC2"
            ],
            "ContainerDefinitions": [
                {
                    "Name": "sample-app",
                    "Image": "nginx",
                    "Memory": 200,
                    "Cpu": 10,
                    "Essential": true,
                    "Environment": [
                        {
                            "Name": "SOME_ENV_VARIABLE",
                            "Value": "SOME_VALUE"
                        }
                    ]
                }
            ]
        }
    }
}
}

当我查看创建的任务时,aws中的任务定义的构建器视图中没有列出容器。

Task Definition

但是,信息在任务定义的json选项卡下列出:

Json View Of container definitions

请注意,上图是显示的信息的子集,并非全部。

其结果是,当任务在集群中运行时,它确实运行了映像,但是在未应用环境变量的情况下运行了该映像。此外,在创建此堆栈或运行创建的任务时,CF不会报告任何错误。

最后,CloudFormation脚本是“真实”脚本的简化示例,该脚本已开始出现相同的问题。该脚本已经运行了大约一年了,据我所知,在工作和中断之间,该脚本没有任何变化。

如果对此有任何想法或建议,我将不胜感激,因为我的脸因砸在这堵特殊的墙上而开始受到伤害。

1 个答案:

答案 0 :(得分:0)

事实证明,这是cloudformation中的错误,仅在通过aws控制台使用脚本创建任务定义时才会发生。亚马逊现在已经解决了这个问题。