【问题标题】:Source Control and deployment for AWS LambdaAWS Lambda 的源代码控制和部署
【发布时间】:2015-10-19 11:19:12
【问题描述】:

有没有人想出一个好的解决方案来控制源代码并将代码部署到 AWS Lambda?我真的很讨厌我必须一直压缩文件并上传它们。有没有更好的方法来做到这一点,比如根据 Lambda 的更改推送代码的服务?

【问题讨论】:

  • 您可以在推送到 GitHub 时使用 Code Ship 之类的工具将其部署到 S3,然后从 S3 存储桶中读取 lambda。
  • 您可以结帐github.com/garnaat/kappa。我写了它,所以我有偏见,但我认为它为 Lambda 提供了一个不错的部署工具。
  • 您使用什么语言?
  • node.js,还有其他不是CLI的工具吗?
  • 我知道问题是关于将源代码控制版本与已发布的 Lambda 同步,但 this link 对于可能遇到此问题的人可能仍然有用。它更多的是关于固定可执行的 Lambda 版本,但仍然相关。如果您有将源代码管理标签自动部署到目标 lambda 的方法,则可以使用此方法固定它们。

标签: amazon-web-services aws-lambda


【解决方案1】:

您可以为此尝试Serverless Framework。目前的测试版看起来很有希望。

无服务器框架允许您在没有任何服务器的情况下构建整个应用程序。它结合了 AWS API Gateway 和 AWS Lambda 函数,支持自动部署。

Beta v1 版本仅支持 NodeJS,但他们计划支持所有语言。

项目文档:http://docs.serverless.com/v0.5.0/docs

【讨论】:

  • 我尝试了无服务器,尽管 github 上有一万颗星,但我不得不与它作斗争,它仍然在我的 AWS 帐户中留下难以手动清理的垃圾。绝对有希望,但还没有。
【解决方案2】:
#!/bin/bash
cd /your/workspace

#zips up the new code
zip -FSr yourzipfile.zip . -x *.git* *bin/\* *.zip

#Updates function code of lambda and pushes new zip file to s3bucket for cloudformation lambda:codeuri source
aws lambda update-function-code --function-name  arn:aws:lambda:us-west-2:YOURID:function:YOURFUNCTIONNAME --zip-file fileb://yourzipfile.zip
aws s3 cp yourzipfile.zip s3://yourbucketname/yourzipfile.zip

取决于 aws-cli 安装和 aws 配置文件设置

aws --profile yourProfileName configure

我的咆哮:我希望 cloudformation lambda:codeuri 能接受任何 url 而不仅仅是 s3://bucketname/filename...所以我可以直接指向 github。

【讨论】:

    【解决方案3】:

    如果您使用 Eclipse,则可以使用 AWS Toolkit for Eclipse:link。这允许您使用任何您想要的源代码控制并通过两次单击将您的代码部署到 AWS。

    【讨论】:

    • 任何你想要的源代码控制,只要你的 lambda 是用 java 编写的......
    猜你喜欢
    • 2021-02-10
    • 2018-07-19
    • 1970-01-01
    • 2018-06-12
    • 2016-04-08
    • 2016-07-10
    • 2012-08-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多