CloudFormation 模板包含一个 AWS::EC2::Instance 资源和一个由 Lambda 函数实现的自定义资源,该 Lambda 函数需要对该 EC2 实例执行操作。在部署过程中,Lambda 自定义资源在 EC2 实例存在之前运行并失败。您如何确保自定义资源等待直到 EC2 实例创建完成?
选择一个答案
点击一个选项来检查您的答案。
正确答案: 向自定义资源添加一个 DependsOn 属性,该属性指定 EC2 实例的名称。.
为什么这是答案
正确答案是向自定义资源添加一个 DependsOn 属性,该属性指定 EC2 实例的名称。CloudFormation 中的 DependsOn 属性用于明确指定资源创建的顺序。通过将 EC2 实例的逻辑名称添加到自定义资源的 DependsOn 属性中,可以确保 CloudFormation 在创建自定义资源之前完全创建并启动 EC2 实例,从而避免自定义资源在 EC2 实例不存在时运行而失败。 更新自定义资源的 ServiceToken 以引用一个现有且有效的 Lambda 函数与资源创建顺序无关。修改 Lambda 以使用 cfn-response 模块是确保自定义资源正确响应 CloudFormation 的最佳实践,但它不解决资源创建顺序的问题。将自定义资源调用包装在 Fn::If 中并不能保证 EC2 实例在自定义资源运行之前就已存在,因为 Fn::If 仅用于条件性地创建资源,而不是控制创建顺序。
通过考试 — 无需无休止地寻找答案
将本次考试的所有验证问题和解释集中在一处,节省数小时的准备时间。1,000+ 认证 · 20+ 语言 · 免费开始。
更快通过考试 → 无需银行卡