【问题标题】:aws-cdk S3 to CodeCommit deploymentaws-cdk S3 到 CodeCommit 部署
【发布时间】:2020-11-23 14:09:45
【问题描述】:

我正在实现一个 CDK 堆栈,它创建一个存储桶,将文件放入其中,最后创建存储文件的 CodeCommit 存储库。一切都很完美,直到调用新的 codecommit.CfnRepository 时出现以下错误:

CREATE_FAILED        | AWS::CodeCommit::Repository | CfnRepository
Not Found (Service: Amazon S3; Status Code: 404; Error Code: 404 Not Found;
Request ID: 2608A90CD11E9729; S3 Extended Request ID: 1iVrjbDpcwqSrsNc7s/aF
9UpNMg0DGe9ABTAJMuoRkA3f9qSYMqVN0sWeLRdT6ETck/DRx6dDCM=)

当我将 s3 - 创建/部署和存储库创建拆分为两个堆栈时,它可以工作,但如果它在一个构造函数中,CDK 部署会失败。

这是我的专用代码:

export class CdkBeeStack extends cdk.Stack {
  constructor(scope: cdk.Construct, id: string, name: string, props?: cdk.StackProps) {
    super(scope, id, props);

    const myBucket = new s3.Bucket(this, 'Bucket', {
      bucketName: name,
      removalPolicy: cdk.RemovalPolicy.DESTROY,
    });

    new s3deploy.BucketDeployment(this, 'DeployFiles', {
      sources: [s3deploy.Source.asset('./lib/Files.zip')],
      destinationBucket: myBucket
    });

    new codecommit.CfnRepository(this, 'CfnRepository' , {
      repositoryName: 'MyFetucinyName',
      code: {
        s3: {
          bucket: name,
          key: 'Files/SourceCode.zip'
        }
      }
    });
  }
}

任何关于如何使其工作的想法将不胜感激

【问题讨论】:

    标签: typescript amazon-web-services aws-cdk


    【解决方案1】:

    我估计你想等到 BucketDeployment 完成,因此尝试添加如下依赖:

        const s3deploy = new s3deploy.BucketDeployment(this, 'DeployFiles', {...});
    
        const ccr = new codecommit.CfnRepository(this, 'CfnRepository' , {...});
    
        ccr.node.addDependency(s3deploy);
    

    但请注意,根据aws cdk doco s3deploy.BucketDeployment 将 zip 存档提取到存储桶中。

    因此,您的“密钥:'Files/SourceCode.zip'”需要引用解压缩的内容。 另一种选择是引用您的 zip 文件所在的目录,它将原封不动地上传,如下所示:

        new s3deploy.BucketDeployment(this, 'DeployFiles', {
          sources:  [s3deploy.Source.asset('./lib')],
          destinationBucket: myBucket
        });
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-12-28
      • 2020-05-08
      • 2019-11-12
      • 1970-01-01
      • 2020-08-23
      • 2021-04-02
      • 2022-07-21
      • 2020-10-07
      相关资源
      最近更新 更多