aws-lambda - Codepipeline:从上一步读取数据
问题描述
我正在尝试设置测试管道。第一步是“Source”,从 CodeCommit 存储库获取 CF 模板。下一阶段是在 CloudFormation 中执行模板的地方 - 构建 ELB、AS 组和启动配置(用户数据 - 安装 HTTPD,部署自定义 index.html 并启动 HTTPD)。Outputs 部分将显示 ELB 的 DNS 名称(“Value”:{“Fn::GetAtt”:[“elbTest”,“DNSName”]})
现在我需要在第 3 阶段读取这个 ELB DNS 名称,这将是一个 Lambda 函数来验证 URL 健康检查。我该怎么做?我不想在用户参数字段中硬编码 DNS 名称。有没有办法我调用的 Lambda 函数可以获得这个值?
解决方案
使用 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
OutputFileName
特别是第一个链接和第二个链接中的“示例 JSON 事件” 。
推荐阅读
- amazon-web-services - 如何在 CloudFormation 模板中描述 AWS Lambda 函数测试事件?
- regex - 负前瞻正则表达式在 ES dsl 查询中不起作用
- sql - Apache Zeppelin:在不同解释器之间传递参数
- aggregate - EF Core 2.1 聚合值和 Where 子句
- c# - XML 序列化错误 - 类型为“ItemsChoiceType[]”的选择标识符“ItemsElementName”的值无效或缺失
- json - 在Angular 5中进行创建后操作时出了什么问题
- ios - 为什么fastlane上传到TestFlight在代理后面失败?
- c# - xamarin stacklayout child 删除自己
- amazon-web-services - 在 DynamoDB 中同时(同一秒)发生多个读取或写入请求时会发生什么?
- azure - 使用 Terraform 的 Azure 容器注册表权限