Amazon web services 使用travis CI自动触发AWS lambda功能?

Amazon web services 使用travis CI自动触发AWS lambda功能?,amazon-web-services,aws-lambda,travis-ci,Amazon Web Services,Aws Lambda,Travis Ci,在所有测试都通过且Travis CI构建成功后,如何使Travis CI自动触发AWS lambda函数?请注意,github回购协议是公开的 背景 我要解决的更大的问题是,我让特拉维斯CI进行回购。每次我按下按钮,在一切通过之后,我手动运行lambda,它在AWS中启动进程。我将公开采购回购协议,以便任何人都可以参与,因此我希望避免手动运行lambda,而是在成功合并拉取请求时自动触发lambda。只要在travis版本中安装lambda,您就可以更新travis ci版本以使用aws cli

在所有测试都通过且Travis CI构建成功后,如何使Travis CI自动触发AWS lambda函数?请注意,github回购协议是公开的

背景
我要解决的更大的问题是,我让特拉维斯CI进行回购。每次我按下按钮,在一切通过之后,我手动运行lambda,它在AWS中启动进程。我将公开采购回购协议,以便任何人都可以参与,因此我希望避免手动运行lambda,而是在成功合并拉取请求时自动触发lambda。

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

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

  • aws lambda invoke
    是我们要运行的基本aws cli命令
  • --函数名
    指定要运行的函数
  • --payload
    指定要调用函数的事件数据
  • /dev/stdout
    指定希望调用的输出输入终端输出
  • 以下是文档:

    • 把我的想法写在这里,只是想看看这是否可行。如果您的容器可以访问internet
    • 为什么不使用curl命令在适当的负载上执行post呢 到API网关终结点
    • lambda可以备份在API网关后面
    • 如果是公开回购,那么我们不想在任何docker/容器上存储任何凭证
    • 为容器创建IAM用户,策略为仅与AWS Lambda invoke交互,然后使用AWS cli选项
    - curl -X POST -H "Content-Type: application/json" -d '{"xyz":"testing","abc":"random stuff"}' https://tst.nhsd.io/restapi/Xyzxyz/testing/