【问题标题】:How to specify AWS pipeline as source provider for codebuild project in CDK?如何将 AWS 管道指定为 CDK 中代码构建项目的源提供者?
【发布时间】:2021-04-30 04:07:07
【问题描述】:

当我在 AWS 控制台中创建代码构建项目时,我可以选择 AWS CodePipeline 作为源提供者。请看下面的截图。

但在 CDK https://docs.aws.amazon.com/cdk/api/latest/docs/@aws-cdk_aws-codebuild.Source.html 中,我找不到如何将 AWS CodePipeline 指定为源提供商。如何在 CDK 中实现?

【问题讨论】:

    标签: amazon-web-services aws-cdk aws-codepipeline aws-codebuild


    【解决方案1】:

    似乎您将代码构建操作分配给代码管道,而不是向代码构建项目源添加代码管道。

    https://docs.aws.amazon.com/cdk/api/latest/docs/aws-codebuild-readme.html#codepipeline

    要将 CodeBuild 项目作为操作添加到 CodePipeline,请使用 PipelineProject 类而不是 Project。这是一个简单的类,不允许您指定源、secondarySources、artifacts 或 secondaryArtifacts,因为这些是通过在 Action 上设置输入和输出 CodePipeline Artifact 实例来处理的,而不是在 Project 上设置它们。

    https://docs.aws.amazon.com/cdk/api/latest/docs/aws-codepipeline-actions-readme.html#build--test

    管道中使用的 CodeBuild 项目示例,以及 CodeCommit:

    import * as codebuild from '@aws-cdk/aws-codebuild';
    import * as codecommit from '@aws-cdk/aws-codecommit';
    import * as codepipeline_actions from '@aws-cdk/aws-codepipeline-actions';
    
    const repository = new codecommit.Repository(this, 'MyRepository', {
      repositoryName: 'MyRepository',
    });
    const project = new codebuild.PipelineProject(this, 'MyProject');
    
    const sourceOutput = new codepipeline.Artifact();
    const sourceAction = new codepipeline_actions.CodeCommitSourceAction({
      actionName: 'CodeCommit',
      repository,
      output: sourceOutput,
    });
    const buildAction = new codepipeline_actions.CodeBuildAction({
      actionName: 'CodeBuild',
      project,
      input: sourceOutput,
      outputs: [new codepipeline.Artifact()], // optional
      executeBatchBuild: true // optional, defaults to false
    });
    
    new codepipeline.Pipeline(this, 'MyPipeline', {
      stages: [
        {
          stageName: 'Source',
          actions: [sourceAction],
        },
        {
          stageName: 'Build',
          actions: [buildAction],
        },
      ],
    });
    

    【讨论】:

    • 感谢您的回复。 assign codebuild action to piplineadding a pipeline to codebuild project source 有什么区别?
    猜你喜欢
    • 2021-04-22
    • 1970-01-01
    • 2022-06-30
    • 2017-07-31
    • 1970-01-01
    • 1970-01-01
    • 2020-03-27
    • 1970-01-01
    • 2021-10-18
    相关资源
    最近更新 更多