簡體   English   中英

如何為 CloudFront 行為指定多個路徑模式?

[英]How to specify multiple path patterns for a CloudFront Behavior?

我有一個帶有 s3 源和自定義源的 CloudFront 分配。 我希望/api/*/admin/*上的所有流量到 go 到自定義源,以及到 go 的所有其他流量到 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,
                            },
                        )
                    ],
                ),

我可能會重復使用/api/*的行為,但我最終會添加一些額外的路徑,這些路徑需要路由到自定義源 (ALB),所以我想知道是否有辦法做到這一點更干燥。

path_pattern是否接受/{api,admin,other}/*樣式模式? 或者我應該重構 Behaviors 部分以重用allowed_methodsforwarded_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
]

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM