【问题标题】:Deploying the code toe Lambda via Codeship通过 Codeship 部署代码 toe Lambda
【发布时间】: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


    【解决方案1】:

    我来自 CodeShip 支持,很高兴听到您决定使用我们的产品!我们确实有两种不同的产品,CodeShip Basic 和 CodeShip Pro。

    我通常建议从 Basic 开始,因为它设置简单,您几乎可以立即开始获得价值。一旦您对工作流程更加熟悉 - 您可以开始 migration to Pro

    更多关于 Basic 的信息 - 您将使用 GitHub、GitLab 或 BitBucket 连接到您的存储库。连接后,您将设置您的build triggers,它允许在您的存储库发生更改时自动启动构建。当构建被触发时,CodeShip 将启动一个 Ubuntu Bionic 构建机器并检查给定提交的代码并运行项目设置中定义的命令。我们有 3 个单独的命令块:setup commandstest commandsdeploy commands

    根据您的要求,我想您会想通读我们的AWS Lambda Deployment 文档。这是您的起点,因此根据您的设置,它可能不像即插即用那么简单。

    如果您在设置项目时遇到问题,请随时向我们的支持团队开票,并附上您遇到问题的构建 URL。

    我想指出的最后一个提示是 CodeShip Basic 可以选择 SSH into a replica of a build machine - 我强烈建议您在设置项目时利用此功能,因为它允许您尝试多个命令而无需触发新的构建,这样您就可以更快地启动并运行所有内容!

    希望对您有所帮助,欢迎使用 CodeShip! :)

    【讨论】:

    • 你好,米歇尔。在我们公司,我们使用 Codeship 有一段时间了。我的同事将它用于 Java 部署,这是我们第一次尝试使用它来部署到 Lambda(Nodejs)。我成功部署到 Lambda,但仍然存在一个问题。你能看看我的问题吗,我做了一些修改。谢谢。
    猜你喜欢
    • 1970-01-01
    • 2016-02-12
    • 2016-09-20
    • 2014-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-07-19
    相关资源
    最近更新 更多