node.js - 从 gitlab 管道将 Node.js 应用程序部署到 AWS EB 时遇到问题

标签 node.js amazon-web-services continuous-integration gitlab amazon-elastic-beanstalk

我在 gitlab 上托管了一个现有的 node.js 应用程序。我尝试使用 gitlab 的 ci/cd 并创建 gitlab-ci.yml 。有 3 个阶段,即 buildtestdeploy,前两个阶段实际上有效,但将其部署到 aws elastic beanstalk 时出现错误管道说...

ERROR: This directory has not been set up with the EB CLI
You must first run "eb init".
ERROR: Job failed: exit code 1

希望你能帮助我解决我的问题:(

这是我的部署阶段的示例配置:

  deploy_aws:
  stage: deploy
  image: coxauto/aws-ebcli
  script:
    - mkdir ~/.aws
    - touch ~/.aws/config
    - chmod 600 ~/.aws/config
    - echo "[profile eb-cli]" >> ~/.aws/config
    - echo "aws_access_key_id=${AWS_ACCESS_KEY_ID}" >> ~/.aws/config
    - echo "aws_secret_access_key=${AWS_SECRET_ACCESS_KEY}" >> ~/.aws/config
    - git checkout master
    - eb deploy sample-sails-app-dev

AWS_ACCESS_KEY_IDAWS_SECRET_ACCESS_KEY 在我的 gitlab 的 ci/cd 变量中声明。

最佳答案

AWS 访问 key 和 key 存储在名为凭证的文件中。 (~/.aws/credentials)。

配置文件具有 AWS 区域和 cli 输出格式 (json) 等默认设置

[default]
region = us-east-1
output = json

凭证文件具有访问权限和 secret ID

[default]
aws_access_key_id = xx
aws_secret_access_key = xxx

因此,在部署脚本中将配置目录更改为凭据

- echo "aws_access_key_id=${AWS_ACCESS_KEY_ID}" >> ~/.aws/credentials

关于node.js - 从 gitlab 管道将 Node.js 应用程序部署到 AWS EB 时遇到问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56141160/

相关文章:

continuous-integration - 如何配置极限反馈设备以通知CI生成状态?

javascript - 将\u00f0\u009f\u0098\u008a 等 Facebook json 文件序列转换为表情符号字符

javascript - 域和子域的不同 cookie

jenkins - 是否可以自定义 Jenkins 作业状态?

amazon-web-services - aws s3 原子替换文件

amazon-web-services - Cognito 用户池触发器上的 AWS Lambda 错误

ios - 无法让 Jenkins 与 faSTLane 一起工作

node.js - Linux Node JS 监听端口 80 但不监听其他端口

javascript - 当使用对象字面语法创建对象时,JavaScript 是否维护对现有变量的引用?

amazon-web-services - 如何在各种已部署应用程序的 kubernetes 上下文之间切换?