bri*_*fey 5 amazon-web-services amazon-cloudfront aws-cdk
我有一个带有 s3 源和自定义源的 CloudFront 发行版。我希望所有流量/api/*都/admin/*转到自定义源,所有其他流量都转到 s3 源。目前我只能使用它/api/*:
cloudfront.SourceConfiguration(
custom_origin_source=cloudfront.CustomOriginConfig(
domain_name=alb,
origin_protocol_policy=cloudfront.OriginProtocolPolicy.MATCH_VIEWER,
),
behaviors=[
cloudfront.Behavior(
allowed_methods=cloudfront.CloudFrontAllowedMethods.ALL,
path_pattern="/api/*",
forwarded_values={
"headers": ["*"],
"cookies": {"forward": "all"},
"query_string": True,
},
)
],
),
Run Code Online (Sandbox Code Playgroud)
我可能可以使用 重复该行为/api/*,但最终我将添加一些额外的路径,这些路径需要路由到自定义源(ALB),所以我想知道是否有一种更干燥的方法来做到这一点。
path_pattern接受/{api,admin,other}/*风格图案吗?或者我应该重构“行为”部分以重用allowed_methods,forwarded_values然后使用不同的重复多个行为path_pattern?
path_pattern 接受
/{api,admin,other}/*样式模式吗?
不,根据文档不支持此模式样式。
我应该重构吗?
是的,您可以简单地将与此自定义来源相对应的所有内容保存path_pattern到列表中,例如path_patterns. 然后使用简单方便的 Python 列表理解,
behaviors=[
cloudfront.Behavior(
allowed_methods=cloudfront.CloudFrontAllowedMethods.ALL,
path_pattern=pp,
forwarded_values={
"headers": ["*"],
"cookies": {"forward": "all"},
"query_string": True,
},
) for pp in path_patterns
]
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6479 次 |
| 最近记录: |