如何通过 CDK 引用 codepipeline 中的现有代码构建项目?
How can I reference an existing codebuild project in codepipeline via CDK?
我正在使用 AWS CDK 部署代码管道和代码构建。我目前正在做的是在一个 cloudformation 堆栈中创建代码构建,并在不同的 cf 堆栈中引用代码管道中的代码构建。
下面是我的代码,我创建了一个代码构建操作,例如:
const action = new actions.CodeBuildAction({
actionName: "MockEventBridge",
type: actions.CodeBuildActionType.BUILD,
input: input,
project: new codebuild.PipelineProject(this, name, {
projectName: mockName,
environment: {
computeType: codebuild.ComputeType.SMALL,
buildImage
privileged: true,
},
role,
buildSpec: codebuild.BuildSpec.fromSourceFilename(
"cicd/buildspec/mockEventbridge.yaml"
),
}),
runOrder: 1,
})
...
const stages = {
stageName, actions: [action]
}
构建动作后,我使用以下代码构建代码管道。
new codepipeline.Pipeline(this, name, {
pipelineName: this.projectName,
role,
stages,
artifactBucket
});
问题是代码构建项目和代码流水线都构建在一个堆栈中。如果我在单独的 cf 堆栈中构建 codebuild 项目,我如何在 codepipeline 中引用此堆栈?
当查看 api 引用 https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-codepipeline.Pipeline.html 时,我找不到在 codepipeline 实例中引用 codebuild arn 的方法。
您可以使用 export 值导出在另一个 Stack 中创建的资源 Codebuild。
从第一个 Stack 导出的 CodeBuild 可以 import 到 CodePipeline 的新 Stack。
您可以查看此页面了解更多信息https://lzygo1995.medium.com/how-to-export-and-import-stack-output-values-in-cdk-ff3e066ca6fc
使用 codebuild.Project.fromProjectArn
static method to import an external Project resource using its ARN. It returns an IProject
, which is what your pipeline's actions.CodeBuildAction
props expect.
我正在使用 AWS CDK 部署代码管道和代码构建。我目前正在做的是在一个 cloudformation 堆栈中创建代码构建,并在不同的 cf 堆栈中引用代码管道中的代码构建。
下面是我的代码,我创建了一个代码构建操作,例如:
const action = new actions.CodeBuildAction({
actionName: "MockEventBridge",
type: actions.CodeBuildActionType.BUILD,
input: input,
project: new codebuild.PipelineProject(this, name, {
projectName: mockName,
environment: {
computeType: codebuild.ComputeType.SMALL,
buildImage
privileged: true,
},
role,
buildSpec: codebuild.BuildSpec.fromSourceFilename(
"cicd/buildspec/mockEventbridge.yaml"
),
}),
runOrder: 1,
})
...
const stages = {
stageName, actions: [action]
}
构建动作后,我使用以下代码构建代码管道。
new codepipeline.Pipeline(this, name, {
pipelineName: this.projectName,
role,
stages,
artifactBucket
});
问题是代码构建项目和代码流水线都构建在一个堆栈中。如果我在单独的 cf 堆栈中构建 codebuild 项目,我如何在 codepipeline 中引用此堆栈?
当查看 api 引用 https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-codepipeline.Pipeline.html 时,我找不到在 codepipeline 实例中引用 codebuild arn 的方法。
您可以使用 export 值导出在另一个 Stack 中创建的资源 Codebuild。 从第一个 Stack 导出的 CodeBuild 可以 import 到 CodePipeline 的新 Stack。
您可以查看此页面了解更多信息https://lzygo1995.medium.com/how-to-export-and-import-stack-output-values-in-cdk-ff3e066ca6fc
使用 codebuild.Project.fromProjectArn
static method to import an external Project resource using its ARN. It returns an IProject
, which is what your pipeline's actions.CodeBuildAction
props expect.