python - 在 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
解决方案
我对 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 堆栈。
推荐阅读
- kubernetes - OpenShift 部署 - pod 控制台日志被截断
- c# - C#文件夹创建不创建所有文件夹,但仅在某些机器上
- javascript - 在 Rails 中设置 Vuetify?
- mongodb - Helm 需要值而不使用它
- powershell - 如何从 if 语句返回测试连接的结果?
- csv - 如何在测试环境中正确地将文件附加到 POST 请求
- electron - unixODBC 和 Electron JS,ODBC 用于开发,但不适用于生产构建
- javascript - 如何在正则表达式中捕获子域?
- ios - 在测试/展示 iOS 应用程序时动态移动 userLocation 的方法?
- excel - Excel 计算问题