【问题标题】:Assets execution step failing in codepipeline - CDK (Java)代码管道中的资产执行步骤失败 - CDK (Java)
【发布时间】:2022-01-18 07:39:40
【问题描述】:

我是这里的新手,我需要任何有关 CDK 代码管道的帮助。 我正在尝试使用管道部署一个模块,但由于某种原因,它卡在了“资产”执行步骤。

错误:无法在“assembly-xxxPipelinexxxStack-Deploy/xxxPipelinexxxStackDeployxxxPipelinexxxStackF5F6A16A.assets.json”读取资产清单:ENOENT:没有这样的文件或目录,stat 'assembly-xxxPipelinexxxStack-Deploy/xxxPipelinexxxStackDeployxxxPipelinexxxStackF5F6A16A.assets.json'

我已经检查了 cdk.out,它确实包含位于 assembly-xxxPipelinexxxStack-Deploy/xxxPipelinexxxStackDeployxxxPipelinexxxStackF5F6A16A.assets.json 位置的所需文件

自动生成的 buildspec 文件如下:

{
  "version": "0.2",
  "phases": {
    "install": {
      "commands": [
        "npm install -g cdk-assets"
      ]
    },
    "build": {
      "commands": [
        "cdk-assets --path \"assembly-xxxPipelinexxxStack-Deploy/xxxPipelinexxxStackDeployxxxPipelinexxxStackF5F6A16A.assets.json\" --verbose publish \"38341e9ef6b01cd2c7cc3b47cd0d2da98933b1121302bf0b03603950b8ff0bd4:current_account-current_region\""
      ]
    }
  }
}

流水线阶段是:

  • 来源 - 成功
  • 构建 - 成功
    • 合成器 - 成功
  • 资产
    • FileAsset1 - 失败

感谢您的时间并回复。

【问题讨论】:

    标签: amazon-web-services aws-cdk aws-codepipeline aws-codebuild


    【解决方案1】:

    你没有指定这个,但我假设你使用的是CDK pipelines(不是aws-cdk-lib.aws_codepipeline)。

    这是 CDK 管道的一个怪癖 - 必须更改构建规范以反映资产中的每次更改。这在实践中意味着当您使用资产时,您必须为管道启用self-mutation,您似乎禁用了它。

    【讨论】:

    • 非常感谢@gshpychka 的回答,是的,我正在使用CDK 管道awscdk.pipelines.CodePipeline; 但是,我不得不禁用自突变,因为它首先失败了,我的错误获取自突变是:No stacks match the name(s) xxxPipelinexxxStack 下一条评论中有更多错误
    • Error: No stacks match the name(s) xxxPipelinexxxStack at CdkToolkit.validateStacksSelected (/usr/local/lib/node_modules/aws-cdk/lib/cdk-toolkit.ts:545:13) at CdkToolkit.selectStacksForDeploy (/usr/local/lib/node_modules/aws-cdk/lib/cdk-toolkit.ts:492:10) at CdkToolkit.deploy (/usr/local/lib/node_modules/aws-cdk/lib/cdk-toolkit.ts:120:20) at initCommandLine (/usr/local/lib/node_modules/aws-cdk/bin/cdk.ts:267:9) 命令没有成功退出 cdk -a .部署 xxxPipelinexxxStack --require-approval=never --verbose 退出状态 1
    • 使用资产时必须启用自突变。至于您的问题,我会将其作为一个单独的问题发布,因为它与问题中的资产问题无关。虽然我会尝试先手动执行堆栈的cdk deploy(启用自突变)。
    • 感谢您的快速回复 - gshpychka。我试过手动 cdk 部署,但仍然失败。根据您的建议,我发布了一个不同的问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2022-08-14
    • 2019-05-01
    • 1970-01-01
    • 2021-01-08
    • 1970-01-01
    • 2021-10-21
    • 2023-02-01
    相关资源
    最近更新 更多