aws-lambda - 代码管道: Read data from previous step

标签 aws-lambda aws-cloudformation aws-codepipeline aws-codecommit

我正在尝试设置测试管道。第一步是“源”,从 CodeCommit 存储库获取 CF 模板。下一阶段是在 CloudFormation 中执行模板的地方 - 构建 ELB、AS 组和启动配置(用户数据 - 安装 HTTPD、部署自定义 index.html 并启动 HTTPD)。输出部分将显示 ELB 的 DNS 名称("Value": {"Fn::GetAtt": [ "elbTest", "DNSName"]})

现在我需要在第三阶段读取这个 ELB DNS 名称,这将是一个 Lambda 函数来验证 URL 运行状况检查。我该怎么做?我不想在“用户参数”字段中对 DNS 名称进行硬编码。我调用的 Lambda 函数有办法获取该值吗?

最佳答案

使用 CloudFormation 创建/更新操作的输出工件作为 Lambda 函数的输入工件。在 Lambda 函数中,它将作为 s3 上 zip 文件的位置出现在 inputArtifacts 数组中的事件数据中。该 zip 文件将包含带有 Stack 输出的 JSON 文件(其文件名可以在 CloudFormation 部署操作中指定)。

作为引用,您可以查看此处:

https://docs.aws.amazon.com/codepipeline/latest/userguide/actions-invoke-lambda-function.html https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/continuous-delivery-codepipeline-action-reference.html

特别是第一个链接中的“示例 JSON 事件”和第二个链接中的“OutputFileName”。

关于aws-lambda - 代码管道: Read data from previous step,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50159124/

相关文章:

aws-cloudformation - cloudformation 模板中没有输出部分

amazon-web-services - 如何向您的应用程序代码提供 CDK 生成的资源名称?

amazon-web-services - 从 AWS CodePipeline 调用 AWS Lambda 函数时权限被拒绝

amazon-web-services - 在 AWS Codepipeline 中部署先前版本

javascript - 如何从 AWS lambda 上的 API 获取正确的响应

mysql - aws - 如何使用用户的名字或姓氏中的用户字符查询用户?

amazon-web-services - 已删除 Cloudformation 堆栈,由于资源已存在,现在无法重新创建新的 Cloudformation 堆栈

amazon-web-services - 在 AWS CDK 中,应如何将 CodeStarConnectionsSourceAction 用作 CodePipeline 的输入?

node.js - 在 lambda 函数中获取 Aws iot thing 的 Thing Shadow

aws-lambda - AWS 步骤函数中的重试逻辑