如何将预先存在的 Amazon S3 存储桶用于 cdk python 中的工件?

How to use pre-existing Amazon S3 bucket for Artifacts in cdk python?

如何为 source_artifact 和 cloud_assembly_artifact 使用预先存在的 Amazon S3 存储桶 Artifacts docs here我的代码如下

source_artifact = codepipeline.Artifact()
cloud_assembly_artifact = codepipeline.Artifact()   

pipeline = pipelines.CdkPipeline(self, 'Pipeline',
  cloud_assembly_artifact=cloud_assembly_artifact,
  pipeline_name='testPipeline',
  source_action = cpactions.CodeCommitSourceAction(
            repository=codecommit.Repository.from_repository_name(
              self, 
              id="cicd_pipeline",
              repository_name="repo-name"
            ),
            branch='master',
            action_name='CodeCommit',
            trigger=cpactions.CodeCommitTrigger.POLL,
            output=source_artifact,
        ),
  synth_action=pipelines.SimpleSynthAction(
    source_artifact=source_artifact,
    cloud_assembly_artifact=cloud_assembly_artifact,
    install_command='npm install -g aws-cdk && pip install -r requirements.txt',
    build_command='pytest unittests',
    synth_command='cdk synth'))

您应该创建一个 codepipeline 管道并在其中附加一个工件桶。

您可以在创建管道后在 CdkPipeline 构造中指定代码管道。 (打字稿但应该类似于 python)

this._artifactsS3Bucket = Bucket.fromBucketArn(this, 'S3ArtifactsBucket', this._props.s3ArtifactBucketARN);
new Pipeline(this, 'Pipeline', {
      artifactBucket: this._artifactsS3Bucket,
      pipelineName: this._pipelineName,
      restartExecutionOnUpdate: true
});

将此代码管道附加到 cdkPipeline 的构造中