amazon-web-services - 通过 Codeship 部署代码 toe Lambda
问题描述
我需要以某种方式自动将我的 Nodejs 代码部署到 Lambda。在查看了许多替代方案(Serveless 和其他)并与我的队友交谈后,我们决定为此使用 Codeship。他们已经使用它连接到 Github,在那里进行构建(在我的例子中是 npm i)。我们不明白的是,在那一步之后如何进行。
将其上传到 S3,然后让 Lambda 以某种方式获取它?或者其他一些方法?
任何见解都值得赞赏。
编辑:
我能够使用 Codeship 相当容易地创建到 Lambda 的 Nodejs 部署。我已按照这些说明进行操作。这是我在自定义脚本下的内容:
pip install awscli
zip -r index.zip .
echo Zipping Done
aws lambda update-function-code --function-name "test_event_crm" --zip-
file fileb://index.zip
echo update function is done
aws lambda get-function --function-name "test_event_crm"
echo lambda get function is done
aws lambda invoke --function-name test_event_crm --payload "$(cat
data.json)” lambda_output.txt
echo **I dont end up here**
cat lambda_output.txt
echo **I also dont end up here**
我面临的问题是代码在 Lambda 中正确地从 Github 结束,但由于某种原因,构建过程永远不会完成。它只是坐在那里,直到它自己结束(几个小时后)。如果您查看脚本中的 echo 命令,请注意最后两个 echo 永远不会执行。构建过程继续运行。
我应该怎么做才能改进脚本?
看来我需要发送结束命令或类似的东西。
编辑 2: 我忽略了脚本。那里有一个调用函数,我认为我不需要。我已经重新编写了脚本,它现在可以按预期工作。但是,我不确定这是不是正确的做法。新脚本:
pip install awscli
zip -r index.zip .
echo Zipping Done
aws lambda update-function-code --function-name "test_event_crm" --zip-
file fileb://index.zip
echo update function is done
aws lambda get-function --function-name "test_event_crm"
echo Get function is done
echo Deploy is done
我需要aws lambda get-function吗???
解决方案
我来自 CodeShip 支持,很高兴听到您决定使用我们的产品!我们确实有两种不同的产品,CodeShip Basic 和 CodeShip Pro。
我通常建议从 Basic 开始,因为它设置简单,您几乎可以立即开始获得价值。一旦您对工作流程更加熟悉 - 您可以开始迁移到 Pro。
更多关于 Basic 的信息 - 您将使用 GitHub、GitLab 或 BitBucket 连接到您的存储库。连接后,您将设置构建触发器,允许构建在存储库发生更改时自动启动。触发构建时,CodeShip 将启动 Ubuntu Bionic 构建机器并检查给定提交的代码并运行项目设置中定义的命令。我们有 3 个单独的命令块:设置命令、测试命令和部署命令。
根据您的要求,我认为您需要通读我们的AWS Lambda 部署文档。这是您的起点,因此根据您的设置,它可能不像即插即用那么简单。
如果您在设置项目时遇到问题,请随时向我们的支持团队开票,并在您遇到问题的地方提供构建 URL。
我想指出的最后一个提示是 CodeShip Basic 可以选择通过SSH 连接到构建机器的副本- 我强烈建议您在设置项目时利用此功能,因为它允许您尝试多个命令而不触发新构建,因此您可以更快地启动并运行所有内容!
我希望对您有所帮助,欢迎来到 CodeShip!:)
推荐阅读
- angularjs - Angular js Jasmine 错误:意外请求:GET
- function - 如何将函数从一个 CoffeeScript 文件导入到另一个文件?
- java - 在 Android Studio 中与 Google Firebase Datasnapshot 作斗争
- postgresql - 如何将表规范化为一张表 PostgreSQL
- c++ - OpenSceneGraph:分析场景图
- python - 如何让我的代码更有效,更省时
- python - 识别数据框中列表中的字符串位置
- python - 是否有可能使用自定义层可训练权重作为 tensorflow 插件函数旋转的参数?
- pulumi - 如何将现有密码导入 Pulumi?
- python - Pandas - TypeError:日期时间/时间增量操作的类型不兼容 [子]