cdk 从 BITBucket 参考中调用 CfnBucket(第一级)

cdk call CfnBucket (first level) from IBucket refernce

我的objective是从接口IBucket开始调用一级cdk命令。

我可以从这里开始获取存储桶参考:

const sourceBucket = props.glueTable.bucket;

事后,我需要打电话:

cfnBucket.replicationConfiguration = {

过程与下面的脚本完全一样: https://github.com/rogerchi/cdk-s3-bucketreplication/blob/main/src/index.ts

但是,如您所见,此脚本需要:

readonly sourceBucket: s3.Bucket;

由于需要调用:

const sourceAccount = cdk.Stack.of(props.sourceBucket).account;

最后,真的没有其他方法可以从引用开始调用 cloudformation 级别 1 命令吗? 看起来很奇怪。

提前致谢 马可

aws 文档中有一个关于此的示例:

如果 Construct 缺少某个功能或者您正在尝试解决某个问题,您可以修改 Construct 封装的 CFN 资源。

所有构造都包含相应的 CFN 资源。例如,高级 Bucket 构造包装了低级 CfnBucket 构造。因为 CfnBucket 直接对应于 AWS CloudFormation 资源,它公开了通过 AWS CloudFormation 可用的所有功能。

访问 CFN 资源 class 的基本方法是使用 construct.node.defaultChild (Python: default_child),将其转换为正确的类型(如果必要的),并修改其属性。还是以Bucket为例

// Get the CloudFormation resource
const cfnBucket = bucket.node.defaultChild;

// Change its properties
cfnBucket.analyticsConfiguration = [
  { 
    id: 'Config'
    // ...        
  } 
];

来自https://docs.aws.amazon.com/cdk/latest/guide/cfn_layer.html

对您来说,这当然不是分析配置,而是存储桶复制。