我们正在通过 CDKPipeline 构造部署 Go Lambda,并且需要编译 Go 代码作为合成步骤的一部分。
现在我们想要更新到 1.15,这只有使用新的 Codebuild Standard 5.0 才有可能。Codebuild Image 本身可通过 SimpleSynthOptions 字段进行配置environment。但似乎没有直接的方法来传递运行时版本。这是引入的一个字段,它是在install:key下定义的。( https://docs.aws.amazon.com/codebuild/latest/userguide/sample-runtime-versions.html ),但安装步骤在类中完全不可配置SimpleSynthAction。
我目前看到的唯一方法是重写类bind中的函数SimpleSynthAction。从我所见,似乎也没有办法在 Synth 步骤之前引入单独的 Codebuild 步骤?
我是否忽略了任何选择,或者这真的是唯一的方法吗?如果是这样,是否值得提出功能请求来将运行时版本配置为合成动作的一部分?
小智 7
在最新的 CdkPipeline API 中,您可以自定义构建规范:https://docs.aws.amazon.com/cdk/api/latest/docs/pipelines-readme.html#customizing-codebuild-projects
例如,使用synthCodeBuildDefaults指定nodejs 14:
const pipeline = new CodePipeline(this, 'Pipeline', {
synth: new ShellStep('Synth', {
input: CodePipelineSource.codeCommit(repo, "mainline"),
commands: [
"npm ci",
"npm run build",
"cd packages/infrastructure",
"npx cdk synth",
],
primaryOutputDirectory: "packages/infrastructure/cdk.out",
}),
synthCodeBuildDefaults: {
partialBuildSpec: BuildSpec.fromObject({
phases: {
install: {
"runtime-versions": {
nodejs: "14"
}
}
}
})
}
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1207 次 |
| 最近记录: |