为何CDK运行时无法识别CodePipeline的变量语法?
解决CodePipeline手动审批动作变量引用报错问题
修正代码变量名拼写错误
你的代码中错误使用了props.variableValue1,但CDK上下文里的属性键是variable1,对应的值variableValue1才是要引用的CodePipeline变量名。修正后的代码用模板字符串更清晰:const manualApprovalAction = new codepipeline_actions.ManualApprovalAction({ actionName: "Approve", notificationTopic: manualApprovalNotificationTopic, additionalInformation: `#{${props.namespace}.${props.variable1}}`, });确认上一阶段变量导出配置正确
确保生成变量的上一阶段动作满足以下要求:- 动作配置了
variablesNamespace,值与上下文的namespace(即nameSpaceValue)完全一致。例如CodeBuild动作的配置:const buildAction = new codepipeline_actions.CodeBuildAction({ actionName: "Build", project: buildProject, variablesNamespace: props.namespace, // 匹配上下文的namespace值 // 其他配置... }); - 该动作确实导出了指定变量。以CodeBuild为例,需要在
buildspec.yml中声明导出变量:version: 0.2 env: exported-variables: - variableValue1 # 与上下文variable1的值一致 phases: build: commands: - export variableValue1="your-actual-value" # 设置变量值
- 动作配置了
验证CDK合成结果
运行cdk synth命令,检查生成的CloudFormation模板中,ManualApprovalAction的AdditionalInformation字段是否为#{nameSpaceValue.variableValue1},确保字符串未被转义或修改。
内容的提问来源于stack exchange,提问作者Jatin Mehrotra
相关产品推荐
相关产品推荐

