Codepipeline:读取上一步的数据

时间:2018-05-03 15:46:37

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

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

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

1 个答案:

答案 0 :(得分:1)

使用CloudFormation创建/更新操作的输出工件作为Lambda函数的输入工件。在Lambda函数中,它将存在于inputArtifacts数组中的事件数据中,作为带有zip文件的s3上的位置。该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