首页 > 解决方案 > 在 aws cdk 中具有嵌套数据结构的属性应该使用哪种类型?

问题描述

我在这里阅读了 AWS CDK 文档,尤其是 CloudFront 构造示例。我看到了两种如何default_behavior在云端Distribution构造中指定的方法。就像这样:

import aws_cdk.aws_cloudfront as cloudfront
cloudfront.Distribution(self, "myDist",
    default_behavior=BehaviorOptions(origin=origins.S3Origin(my_bucket))
)

或者像这样:

import aws_cdk.aws_cloudfront as cloudfront
cloudfront.Distribution(self, "myDist",
    default_behavior={"origin": origins.LoadBalancerV2Origin(lb)}
)

正如您在第一个变体中看到的那样,default_behavior接受BehaviorOptions嵌套数据结构,在此处描述。

在第二个变体default_behavior中只接受 dict。

我很困惑,因为在此处Distribution的构造文档中看到该属性接受类型。CDK 的隐含含义是 dict 是否也允许在任何预期嵌套数据结构的地方或我错的地方?请帮忙)default_behavior BehaviorOptions

定义分布构造的屏幕截图

标签: pythonamazon-web-servicesaws-cdk

解决方案


我对 Python 了解不多,但由于 CDK 是用 Javascript/Typescript ( https://github.com/aws/aws-cdk ) 编写的,并通过 jsii ( https:// github.com/aws/jsii)。因此,您可以查看 CDK Javascript 参考:通过查看(https://docs.aws.amazon.com/cdk/api/latest/typescript/api/aws-cloudfront/distributionprops.html#aws_cloudfront_DistributionProps_defaultBehavior),我觉得您应该使用BehaviorOptions类型。

您始终可以尝试部署您的 CDK 项目并检查部署的 CloudFormation 堆栈。


推荐阅读