【问题标题】:Serverless Framework deploy through CircleCI通过 CircleCI 部署无服务器框架
【发布时间】:2019-12-20 21:44:15
【问题描述】:

我正在尝试将 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.

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

【问题讨论】:

    标签: serverless-framework circleci


    【解决方案1】:

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

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

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

    【讨论】:

      【解决方案2】:

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

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

      这就是你需要做的。你不必做任何额外的步骤。我在我的项目上试过这个,它奏效了。

      您的部署步骤应该是

      sls deploy
      

      【讨论】:

      • 我会检查并告诉你我在我的 circleci 项目中是如何做的
      • 谢谢。原谅我的无知,但这对我来说是新的。我的circleci环境变量中有密钥和秘密。在我的.circleci/config.yml 安装服务器后,我添加了``` export AWS_ACCESS_KEY_ID=$AWS_ACCESS_KEY_ID export AWS_SECRET_ACCESS_KEY=$AWS_SECRET_ACCESS_KEY``` 对吗?仍然失败。
      • 语法正确。我会检查我的 circleci 配置并告诉你
      • 我的 circle.yml 上没有 AWS 凭证。它必须已经可以通过与 AWS 的 circleci 集成获得。给我一点时间,我会告诉你的
      • 非常感谢您的宝贵时间:D
      【解决方案3】:

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

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

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

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

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

      【讨论】:

      • 如果您想继续使用 Serverless Dashboard,您可以重新添加 app 和 org 变量,然后使用上面分享的 SERVERLESS_ACCESS_KEY 解决方案
      • 感谢您的提示!对servetjes来说还是新的。会尝试你的步骤。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-08-04
      • 1970-01-01
      • 2019-03-02
      • 1970-01-01
      • 2021-05-12
      • 2018-12-30
      • 2021-10-07
      相关资源
      最近更新 更多