我正在使用 CloudFormation 模板来创建启动配置和自动扩展组。此启动配置的用户数据脚本调用 CI web-hook 将应用程序部署到此实例中。当然,web-hook 会立即响应 200,但部署过程将需要 2-3 分钟。如果我cfn-signal
立即调用,实例将过早地向负载均衡器注册,那么我该如何推迟它呢?理想情况下,我认为 CI 应该发出信号来表明应用程序部署是否成功。
答案1
如果您希望从已启动的 EC2 实例之外的 CI 流程触发 CloudFormation 资源创建完成,而无需cfn-signal
从实例调用,则可以使用信号资源API 调用,可直接调用,也可通过任何 AWS SDK 调用(例如aws cloudformation signal-resource
从 CLI,cloudformation.signalResource
可能通过 Lambda 函数等从 NodeJS SDK 获得。
只需确保使用您正在发送的实例 ID 作为“唯一 ID”即可。