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
对您来说,这当然不是分析配置,而是存储桶复制。
我的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
对您来说,这当然不是分析配置,而是存储桶复制。