如何为CDK的SimpleSynthAction.standardNpmSynth指定自定义角色
解决方案
有两种可行方案可以实现指定共用角色的需求:
- 直接在
standardNpmSynth参数中传入role属性standardNpmSynth方法的入参支持透传SimpleSynthActionProps接口的所有属性,其中就包含role配置,你可以直接在现有配置中添加该字段即可,示例代码:
pipelines.SimpleSynthAction.standardNpmSynth({ sourceArtifact, cloudAssemblyArtifact, installCommand: "npm install --include=dev", buildCommand: "npm run build", environment: { privileged: true, }, // 直接指定你预先创建的共用角色 role: yourSharedPipelineRole });
- 手动实例化构建动作(适配低版本CDK)
如果你使用的CDK版本较老,第一种方案不生效,可以放弃standardNpmSynth快捷方法,手动实例化SimpleSynthAction或者CodeBuildAction,显式指定角色,示例代码:
const synthAction = new pipelines.SimpleSynthAction({ sourceArtifact, cloudAssemblyArtifact, // 手动补齐standardNpmSynth默认的三个命令即可 installCommand: "npm install --include=dev", buildCommand: "npm run build", synthCommand: "npx cdk synth", environment: { privileged: true, }, role: yourSharedPipelineRole });
如果你使用的是CDK v2的新版
cdk-pipelinesAPI,更推荐使用CodeBuildStep替代SimpleSynthAction,CodeBuildStep原生支持role参数配置,用法和上述示例一致。
内容的提问来源于stack exchange,提问作者Qinjie
相关产品推荐
相关产品推荐

