使用travis CI自动触发AWS lambda函数?

时间:2019-09-24 23:15:31

标签: amazon-web-services aws-lambda travis-ci

在所有测试均通过且travis CI成功构建后,如何使Travis CI自动触发AWS lambda函数?请注意,github仓库是公开的。

背景

我要解决的更大问题是我在回购协议上使用了travis CI。每次推送后,一切都会过去,我会手动运行一个lambda来启动AWS中的进程。我将开放源代码回购,以便任何人都可以参与,所以我希望避免手动运行lambda,而是在成功合并拉取请求时自动触发它。

2 个答案:

答案 0 :(得分:0)

只要您将它安装在travis版本中,就可以更新travis-ci版本以使用aws-cli调用lambda。这是一个示例:

aws lambda invoke --function-name awesome-function --payload '{"some":"data", "targetState": true}' /dev/stdout

细目分类:

  1. aws lambda invoke是我们要运行的基本aws-cli命令
  2. --function-name指定要运行的功能
  3. --payload指定用于调用函数的事件数据
  4. /dev/stdout指定我们希望调用的输出进入终端输出

这是文档:https://docs.aws.amazon.com/cli/latest/reference/lambda/invoke.html

答案 1 :(得分:0)

  • 在这里写下我的想法,只是想检查一下这是否可行。如果您的集装箱可以上网。
  • 为什么不使用curl命令在适当的负载下进行发布 到API网关端点。
  • lambda可以支持在API网关后面。
  • 如果它将成为公共仓库,那么在这种情况下,我们不想在任何docker /容器上存储任何凭据。
  • 使用仅与AWS Lambda调用进行交互的策略为容器创建一个IAM用户,然后使用aws cli选项。
- curl -X POST -H "Content-Type: application/json" -d '{"xyz":"testing","abc":"random stuff"}' https://tst.nhsd.io/restapi/Xyzxyz/testing/