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

AWS Cloudformation creates task definition with no container definition

以下 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中任务定义的构建器视图中没有列出容器。

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

请注意,上图是所显示信息的一部分,并非全部。

这样做的结果是,当任务在集群中 运行 时,它会 运行 图像,但 运行 它没有应用环境变量。此外,CF 在创建此堆栈时或在 运行创建创建的任务时不会报告任何错误。

最后,CloudFormation 脚本是 'real' 脚本的简化示例,该脚本已开始出现同样的问题。该脚本已经正常运行了大约一年,据我所知,脚本在运行和中断之间没有任何变化。

如果有任何想法或建议,我将不胜感激,因为我的脸因为撞到这堵墙而开始受伤。

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