Serverless Framework 通过 CircleCI 部署

Serverless Framework deploy through 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.

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

刚刚检查 Circleci 停止支持 AWS Permissions 作为设置页面中的可配置选项。

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

这就是您需要做的全部。您无需执行任何其他步骤。我在我的项目中尝试过这个并且它有效。

您的部署步骤应该只是

sls deploy

作为上一个答案的后续:我遇到了完全相同的错误。 我从聊天中获取了解决方案。

对我来说,我应用的修复:

  1. 在 CircleCI 项目设置中,在 "AWS permissions" 下我添加了 AWS 访问密钥 ID 和秘密访问密钥
  2. 在 CircleCI 项目设置中,在 "Environment variables" 下,我还添加了 AWS Access Key ID 和 Secret Access key
  3. 在我的 serverless.yml 文件中,我 删除了带有 org 变量的行

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

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

这可能仅适用于那些试图将无服务器企业与他们设置的监控和仪表板一起使用的人。 @wintvelt 的回答对我不起作用,因为如果我删除 org 变量,它可能会中断企业所需的连接。所以我的 CircleCI 设置步骤:

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

我从阅读 Seed.run 如何让用户与无服务器集成中得到这个想法。欲了解更多信息,请阅读此 link:https://seed.run/docs/integrating-with-serverless-enterprise