代码管道中的资产执行步骤失败 - CDK (Java)
Posted
技术标签:
【中文标题】代码管道中的资产执行步骤失败 - CDK (Java)【英文标题】:Assets execution step failing in codepipeline - 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 - 失败感谢您的时间并回复。
【问题讨论】:
【参考方案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 部署,但仍然失败。根据您的建议,我发布了一个不同的问题。以上是关于代码管道中的资产执行步骤失败 - CDK (Java)的主要内容,如果未能解决你的问题,请参考以下文章
使用 CDK、AWS 和 Github 私有存储库部署的最佳实践?
AWS CDK - 多个堆栈 - 找不到 Lambda 代码位置的参数