AWS CloudFront起源的CDK构造库
aws-cdk.aws-cloudfront-origins的Python项目详细描述
CDK CloudFront库的CloudFront起源
---这个库包含定义CloudFront发行版的来源的方便方法。可以使用此库从 S3存储桶、弹性负载平衡v2负载平衡器或任何其他域名。在
S3铲斗
可以添加一个S3 bucket作为原点。如果bucket被配置为网站端点,则分发可以使用S3重定向和S3自定义错误 文件。在
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826importaws_cdk.aws_cloudfrontascloudfrontimportaws_cdk.aws_cloudfront_originsasoriginsmy_bucket=s3.Bucket(self,"myBucket")cloudfront.Distribution(self,"myDist",default_behavior=BehaviorOptions(origin=origins.S3Origin(my_bucket)))
上面将根据是否设置IBucket.isWebsite
对bucket进行不同的处理。如果bucket配置为网站,则bucket为
它被视为HTTP源,并且可以使用内置的S3重定向和错误页。否则,将bucket作为bucket origin处理,并且
将使用CloudFront的重定向和错误处理。在后一种情况下,源站将创建一个源站访问标识并授予它对
底层存储桶。这可以与非公开的bucket结合使用,以要求用户使用CloudFront访问您的内容
而不是s3url。或者,自定义源站访问标识可以在属性中传递给S3源站。在
ELBv2负载平衡器
弹性负载平衡(ELB)v2负载平衡器可用作原点。为了让负载平衡器作为源,它必须是公开的
可访问(internetFacing
为true)。同时支持应用程序和网络负载平衡器。在
源站也可以定制,以响应不同的端口,具有不同的连接属性等
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826origin=origins.LoadBalancerV2Origin(load_balancer,connection_attempts=3,connection_timeout=Duration.seconds(5),protocol_policy=cloudfront.OriginProtocolPolicy.MATCH_VIEWER)
从HTTP端点
源也可以从任何其他HTTP端点创建,给定域名和其他源属性(可选)。在
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826cloudfront.Distribution(self,"myDist",default_behavior={"origin":origins.HttpOrigin("www.example.com")})
有关详细信息,请参阅@aws-cdk/aws-cloudfront
的文档。在
故障转移源(源组)
您可以为需要高可用性的场景设置CloudFront和origin failover。
首先,创建具有两个原点的原点编组:主原点和次原点。
如果主源不可用,或返回指示失败的特定HTTP响应状态代码,
CloudFront会自动切换到辅助原点。
您可以使用OriginGroup
类在CDK中实现该行为:
# Example automatically generated without compilation. See https://github.com/aws/jsii/issues/826cloudfront.Distribution(self,"myDist",default_behavior={"origin":origins.OriginGroup(primary_origin=origins.S3Origin(my_bucket),fallback_origin=origins.HttpOrigin("www.example.com"),# optional, defaults to: 500, 502, 503 and 504fallback_status_codes=[404])})
- 项目
标签: