我需要以某种方式自动化我的Nodejs代码部署到Lambda。在研究了许多替代方案(Serveless和其他选项)之后,在与我的团队成员交谈之后,我们决定使用Codeship来实现这一点。他们已经使用它连接到Github,在那里进行构建(在我的例子中是npm)。我们不明白的是,如何在这一步之后继续前进。
把它上传到S3,然后让Lambda把它捡起来?或者其他的方法?
任何洞察力都是值得赞赏的。
编辑:
我能够创建Nodejs部署到Lambda使用代码相当容易。我跟踪了这些使用说明。这就是我在自定义脚本下拥有的内容:
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从未执行。生成过程继续运行。
我应该做些什么来改进脚本呢?
看来我需要发送end命令或类似的东西。
编辑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函数吗?
发布于 2019-07-25 17:53:50
我来自CodeShip支持,很高兴听到你决定使用我们的产品!我们有两种不同的产品,CodeShip Basic和CodeShip Pro。
我通常建议从Basic开始,因为它的设置非常简单,而且您几乎可以立即获得价值。一旦您对工作流更加熟悉了,就可以启动一个迁移到Pro。
因此,更多关于Basic的信息--您将使用GitHub、GitLab或BitBucket连接到您的存储库。一旦连接,您将设置您的生成触发器,它允许在您的存储库发生更改时自动启动构建。当一个构建被触发时,CodeShip将旋转一个,检查给定提交的代码,并在项目设置中定义的命令中运行。我们有三个独立的命令块:设置命令、测试命令和部署命令。
根据您的要求,我认为您需要阅读我们的AWS Lambda部署文档。这是为您提供一个起点,所以根据您的设置,它可能没有简单的即插即用。
如果您在设置项目时遇到问题,请与我们的支持团队一起打开一张票证,并包含您遇到问题的构建URL。
我想指出的最后一点是,CodeShip Basic可以选择将SSH转换为生成机器的副本。 --我强烈建议您在设置项目时考虑此特性的优点,因为它将允许您尝试多个命令而不触发新构建,这样您就可以更快地启动和运行所有功能!
我希望这有助于并欢迎来到CodeShip!:)
https://stackoverflow.com/questions/57199125
复制相似问题