【发布时间】:2019-12-03 13:32:25
【问题描述】:
我需要以某种方式自动将我的 Nodejs 代码部署到 Lambda。 在查看了许多替代方案(Serveless 和其他)并与我的队友交谈后,我们决定为此使用 Codeship。 他们已经使用它连接到 Github,在那里进行构建(在我的例子中是 npm i)。我们不明白的地方,在那一步之后如何进行。
将它上传到 S3,然后让 Lambda 以某种方式获取它? 还是其他方式?
感谢任何见解。
编辑:
我能够使用 Codeship 相当容易地创建到 Lambda 的 Nodejs 部署。我关注了这些instructions。这是我在自定义脚本下的内容:
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 ???
【问题讨论】:
标签: amazon-web-services aws-lambda codeship