在 CDKPipeline SynthAction 中配置运行时版本
Configure Runtime Versions in CDKPipeline SynthAction
我们正在通过 CDKPipeline 构造部署 Go Lambdas,并且需要编译 Go 代码作为合成步骤的一部分。
现在我们想更新到 1.15,这只有在我们使用新的 Codebuild Standard 5.0 时才有可能。 Codebuild 图像本身可通过 SimpleSynthOptions 字段 environment
配置。但是似乎没有直接的方法来传递运行时版本。这是引入的字段,定义在install:
键下。 (https://docs.aws.amazon.com/codebuild/latest/userguide/sample-runtime-versions.html),但安装步骤在 SimpleSynthAction
class.
中是完全不可配置的
我目前看到的唯一方法是覆盖SimpleSynthAction
class中的bind
函数。从我所见,似乎也没有办法在 Synth 步骤之前引入单独的 Codebuild 步骤?
我是否忽略了任何选项,或者这真的是唯一的方法吗?如果是这样,是否值得提出一个功能请求,使运行时版本可配置为 synthAction 的一部分?
阅读一些 more docs 之后,我的问题自行解决了,因为如果没有给出运行时版本,则采用默认版本。所以当我更新到standard 5.0的时候,默认使用的是go 1.15
但是,为了定义其他运行时版本的一般目的,我将创建一个功能请求,因为目前似乎无法定义。
在最新的 CodePipeline API 中,您可以自定义构建规范:https://docs.aws.amazon.com/cdk/api/latest/docs/pipelines-readme.html#customizing-codebuild-projects
例如使用synthCodeBuildDefaults
指定node js 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"
}
}
}
})
}
});
我们正在通过 CDKPipeline 构造部署 Go Lambdas,并且需要编译 Go 代码作为合成步骤的一部分。
现在我们想更新到 1.15,这只有在我们使用新的 Codebuild Standard 5.0 时才有可能。 Codebuild 图像本身可通过 SimpleSynthOptions 字段 environment
配置。但是似乎没有直接的方法来传递运行时版本。这是引入的字段,定义在install:
键下。 (https://docs.aws.amazon.com/codebuild/latest/userguide/sample-runtime-versions.html),但安装步骤在 SimpleSynthAction
class.
我目前看到的唯一方法是覆盖SimpleSynthAction
class中的bind
函数。从我所见,似乎也没有办法在 Synth 步骤之前引入单独的 Codebuild 步骤?
我是否忽略了任何选项,或者这真的是唯一的方法吗?如果是这样,是否值得提出一个功能请求,使运行时版本可配置为 synthAction 的一部分?
阅读一些 more docs 之后,我的问题自行解决了,因为如果没有给出运行时版本,则采用默认版本。所以当我更新到standard 5.0的时候,默认使用的是go 1.15
但是,为了定义其他运行时版本的一般目的,我将创建一个功能请求,因为目前似乎无法定义。
在最新的 CodePipeline API 中,您可以自定义构建规范:https://docs.aws.amazon.com/cdk/api/latest/docs/pipelines-readme.html#customizing-codebuild-projects
例如使用synthCodeBuildDefaults
指定node js 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"
}
}
}
})
}
});