通过CircleCI部署无服务器框架

时间:2019-12-20 21:44:15

标签: serverless-framework circleci

我正在尝试将serverless集成到我的circleci工作流程中。 我尝试先将keysecret都添加到AWS permissions中,但这没有用。 然后,我将keysecret添加到Environment variables并在我的配置文件中:

sudo npm install -g serverless
sls config credentials --provider aws --key $AWS_ACCESS_KEY_ID --secret $AWS_SECRET_ACCESS_KEY
sls deploy -v

但是我看到了相同的错误:

Serverless Error ---------------------------------------
You are not currently logged in. Follow instructions in http://slss.io/run-in-cicd to setup env vars for authentication.

有人遇到这个问题吗?我在网上找不到答案或提示。谢谢。

3 个答案:

答案 0 :(得分:2)

这可能仅适用于尝试将无服务器企业版与已设置的监视和仪表板一起使用的用户。 @wintvelt的答案对我不起作用,因为如果删除org变量,则可能会断开企业所需的连接。因此,我的CircleCI设置步骤如下:

  1. 在CircleCI中,使用AWS Key ID和Secret作为环境变量为每个环境创建一个上下文(将它们放在上下文中是一件很不错的事情,您可以使用其他方法将Circle注入环境变量到构建中)。 / li>
  2. 在无服务器框架仪表板中,创建一个新的访问密钥,该密钥将在Circle中使用。
  3. 使用步骤2中的值创建一个新的环境变量SERVERLESS_ACCESS_KEY。

通过阅读Seed.run如何使用户与Serverless集成,我有了这个想法。有关更多信息,请阅读以下链接:https://seed.run/docs/integrating-with-serverless-enterprise

答案 1 :(得分:1)

只需选中Circleci,即可在设置页面中停止支持AWS Permissions作为可配置选项。

您需要将凭据设置为项目的环境变量。凭据应准确命名为AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY

这就是您需要做的。您无需执行任何其他步骤。我在我的项目上尝试了此方法,并成功了。

您的部署步骤应该简单地是

sls deploy

答案 2 :(得分:-1)

作为上一个答案的后续:我有完全相同的错误。 我将聊天中的解决方案作为解决方案。

对我来说,我应用的修复程序是

  1. 在CircleCI项目设置中的“ AWS权限”下,我添加了AWS Access Key ID和Secret Access密钥
  2. 在CircleCI项目设置中的“环境变量”下,我还添加了AWS Access Key ID和Secret Access键
  3. 从我的serverless.yml文件中,我删除了带有org变量的行

对我来说,仅靠1.和2.还不够。我还必须从yml文件中删除该行,才能通过CircleCI进行部署。

对于那些在这里遇到同样问题的人,希望这对您有帮助!