【问题标题】:Deploy stage failing in AWS CodePipeline for NodeJS app在 AWS CodePipeline for NodeJS 应用程序中部署阶段失败
【发布时间】:2021-08-07 23:52:14
【问题描述】:

这是我第一次使用 AWS CodePipeline(实际上是 CI/CD),我在将 NodeJS/Express 应用程序部署到 Elastic Beanstalk 时遇到了问题。

我设置了一个包含三个步骤的管道:

  1. 来自我的 GitHub 存储库
  2. 使用 CodeBuild 构建
  3. 部署到 ElasticBeanstalk

我的 Source 和 Build 阶段已成功完成,但部署步骤失败并显示以下消息:

操作失败,因为工件或 Amazon S3 存储桶 找不到。工件桶名称: codepipeline-us-east-1-[long-string-of-numbers]。验证这 桶存在。如果存在,检查生命周期策略,然后尝试 发布更改。

我已验证 S3 存储桶存在,并且上面没有生命周期策略。

我还检查了附加到正在使用的服务角色的策略,它具有完整的 S3 访问权限。

部署阶段具有以下设置:

  • 操作名称:部署
  • 动作提供者:Elastic Beanstalk
  • 地区:美国东部(弗吉尼亚北部)
  • 输入工件:BuildArtifact
  • 应用程序名称和环境名称是我的 Elastic Beanstalk 设置的适当值
  • 变量命名空间:DeployVariables

我已确认构建阶段的输出工件名称是“BuildArtifact”,它与我的部署阶段的输入工件匹配。

管道中最初没有构建步骤,并且之前使用的是不同的 S3 存储桶:elasticbeanstalk-us-east-1-[long-string-of-numbers],不确定这是否是一个因素与否。

知道如何让这个部署工作吗?

【问题讨论】:

    标签: node.js amazon-web-services amazon-s3 aws-codepipeline


    【解决方案1】:

    我想我明白了。

    我意识到我没有在 CodeBuild 中设置工件。为了解决,我去了CodeBuild,进入我的BuildProject,从“Edit”菜单中选择“Artifacts”,并填写了相应的数据。

    然后,在我的 nodejs 项目的 buildspec.yaml 中,我添加了以下内容: 文物: 文件: - '**/*'

    【讨论】:

      猜你喜欢
      • 2019-04-07
      • 2016-09-05
      • 2020-09-12
      • 2019-04-24
      • 2020-03-21
      • 2019-12-10
      • 1970-01-01
      • 1970-01-01
      • 2021-07-21
      相关资源
      最近更新 更多