管道中 AWS lambda 函数的输入

如何解决管道中 AWS lambda 函数的输入


我是 AWS 的新手,我正在尝试使用其服务设置测试环境,如下所示:
我设置了一个管道(使用 AWS 代码管道),每次新推送到我的在线存储库时都会触发该管道(AWS 代码提交)。
然后,我使用 AWS 代码构建在我的项目上运行单元测试(在 python 中)。我可以使用 AWS cloud watch 看到测试结果(在 AWS 代码构建服务的输出日志中)。
之后,我想设置一个 lambda 函数来解析日志并生成单元测试结果的摘要,以通过 AWS SES 发送到我的电子邮件

不幸的是,我无法理解如何将 AWS 代码构建输出日志作为输入传输到 lambda 函数。我只能使用 lambda 函数中定义的认“事件”结构,即在每次构建代码后触发,并解析其部分数据(我设法将日志保存在 S3 中,但我不知道是否和我该如何使用它们)。

此外,我想根据将推送提交到存储库的用户将测试摘要发送到特定的电子邮件。 如何获取提交推送的用户信息并将其插入到例如 lambda 函数中,该函数将识别用户并将测试摘要发送到其电子邮件?有没有更简单的方法来构建我的测试环境?

提前致谢!

解决方法

您可以配置 AWS Codebuild 作业以将日志发送到 S3 存储桶,如下面的代码片段所示

enter image description here

从那里您可以配置您的 S3 Events Notification 并将您的 lambda 挂钩。

就我阅读的文档而言,有三种验证代码提交的方法,只有一种提供了通过会话标签获取代码提交者电子邮件地址的相关解决方案。

  • HTTPs(Git 凭证 IAM 用户没有电子邮件地址)
  • SSH(再次没有电子邮件地址)
  • HTTPS Git Remote Commit

所以你只剩下Authorization based on CodeCommit tags,推荐用于

如果您想使用根帐户、联合访问或临时凭证连接到 CodeCommit,您应该使用 git-remote-codecommit

设置访问

您需要在此处将各个部分连接在一起Monitoring CodeCommit events in Amazon EventBridge and Amazon CloudWatch Events

因为一旦代码提交的事件被信息触发(假设您使用 GRC),您需要等待代码构建作业完成,这将您的作业日志放入 s3,最终您的 lambda 被触发。

我将使用 AWS Step Function Parallel Workflow,其中来自代码提交的事件触发 lambda,然后 Step function Code Build works 为我完成其余的工作。但这只是一种选择,您也可以通过 lambda 来处理集成。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?
Java在半透明框架/面板/组件上重新绘画。
Java“ Class.forName()”和“ Class.forName()。newInstance()”之间有什么区别?
在此环境中不提供编译器。也许是在JRE而不是JDK上运行?
Java用相同的方法在一个类中实现两个接口。哪种接口方法被覆盖?
Java 什么是Runtime.getRuntime()。totalMemory()和freeMemory()?
java.library.path中的java.lang.UnsatisfiedLinkError否*****。dll
JavaFX“位置是必需的。” 即使在同一包装中
Java 导入两个具有相同名称的类。怎么处理?
Java 是否应该在HttpServletResponse.getOutputStream()/。getWriter()上调用.close()?
Java RegEx元字符(。)和普通点?