如何在AWS Cloudformation中调试“Resource creation timed out waiting for completion”问题?

11

我对AWS完全不熟悉,我有一个脚本,应该可以创建ECS集群。

当我运行脚本时,我的堆栈在超过一小时的CREATE_IN_PROGRESS状态中挂起。最终失败并进入ROLLBACK_COMPLETE

当我在AWS控制台的Cloudformation中时,我可以转到“事件”并查看尝试创建的两个服务导致堆栈创建失败。然而,唯一的错误消息是Resource creation timed out waiting for completion

我已经尝试了这里所述的步骤,包括进入CloudTrail,但我不太确定要查找什么,并且没有找到任何帮助我解决问题的东西。再次强调,我是AWS新手。

有哪些步骤可以获取更详细的错误消息?如何在AWS中进行调试?

非常感谢您提供的任何帮助,如果需要提供更多信息,请告诉我。


你的模板是什么?哪些服务失败了? - Marcin
3
很可能你的问题是由于 ECS 服务无法稳定(由于健康检查失败等原因)。调试此问题的最佳方法可能是进入 ECS 控制台,检查任务以及它们被关闭的原因。 - mreferre
不确定如何修复它们,但在此AWS页面上找到了有关错误的更多清晰信息: https://aws.amazon.com/premiumsupport/knowledge-center/cloudformation-physical-resource-error/ - stevestar888
1个回答

7
我遇到了与CDK相同的情况,我的ECS在3小时后的CREATE_IN_PROGRESS状态下失败。调试和故障排除的一个大问题是,当ROLLBACK发生时,它会清除您的ECS集群和事件历史记录。但是,如果您转到ECS控制台的任务列表,您应该会看到一个任务,并且我敢打赌它被卡在PENDING状态。有很多原因导致这种情况发生。当任务无法达到所需状态时,它将将失败原因添加到服务事件中。要到达那里:

Cluster > Service > Service Name

在这个页面上有一个“事件”选项卡。

Service Event's tab

选择一个任务,它会显示为“STOPPED”。在我下面的情况中,看起来它找不到ECS容器模板映像。

CannotPullContainerError


2
出现了ECS服务无法拉取镜像的错误。请参阅https://aws.amazon.com/premiumsupport/knowledge-center/ecs-unable-to-pull-secrets/。问题在于ECS任务未被自动分配公共IP,以便访问AWS ECR(搜索“确保在启动新任务或创建新服务时启用自动分配公共IP”)。通过向Fargate ALB服务配置添加标志来解决,如下所示CDK代码:const service = new ecs_patterns.ApplicationLoadBalancedFargateService(this, 'AcmeFulfillmentService', { assignPublicIp: true, certificate: 'certArn' - Jose Quijada

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接