【问题标题】:aws cloudformation CachePolicy generic erroraws cloudformation CachePolicy 通用错误
【发布时间】:2021-05-05 19:00:33
【问题描述】:

我正在尝试创建一个 cachePolicy 来转发所有(cookie、查询字符串和标头)并且实际上 不缓存 任何东西:

    Type: AWS::CloudFront::CachePolicy
    Properties:
      CachePolicyConfig:
        Comment: Cache Policy
        DefaultTTL: 0
        MaxTTL: 0
        MinTTL: 0
        Name: !Sub ${AWS::StackName}-cache-policy
        ParametersInCacheKeyAndForwardedToOrigin:
          CookiesConfig:
            CookieBehavior: all
          EnableAcceptEncodingBrotli: true
          EnableAcceptEncodingGzip: true
          HeadersConfig:
            HeaderBehavior: whitelist
            Headers: 
              - "*"
          QueryStringsConfig:
            QueryStringBehavior: all

还有我的 OriginRequestPolicy:

OriginRequestPolicy:
    Type: AWS::CloudFront::OriginRequestPolicy
    Properties:
      OriginRequestPolicyConfig:
        Name: !Sub ${AWS::StackName}-origin-request
        CookiesConfig:
          CookieBehavior: all
        HeadersConfig:
          HeaderBehavior: allViewer
        QueryStringsConfig:
          QueryStringBehavior: all

但是当我尝试上传堆栈时,我得到一个一般错误:

The following resource(s) failed to create: [OriginRequestPolicy, CachePolicy]. Rollback requested by user. OriginRequestPolicy CREATE_FAILED   Resource creation cancelled CachePolicy CREATE_FAILED   Invalid request provided: AWS::CloudFront::CachePolicy

我错过了什么?

obs:我不能只创建一个AWS::CloudFront::OriginRequestPolicy,因为如果已经先存在一个cacheRequestPolicy,我似乎只能有一个OriginRequestPolicy..

【问题讨论】:

  • 我看不到你的整个场景,但你必须有一个缓存策略才能指定一个源请求策略。 “要使用源请求策略,缓存行为也必须使用缓存策略。如果没有缓存策略,则不能在缓存行为中使用源请求策略。”见docs.aws.amazon.com/AmazonCloudFront/latest/DeveloperGuide/…
  • 感谢您的评论。实际上,我的观察已经指出了这一点,但我最终使用了预先制定的政策:它们完全满足了我的需求

标签: caching amazon-cloudformation amazon-cloudfront


【解决方案1】:

我不知道为什么“手动方式”不起作用,但我从文档中找到了 2 个满足我需求的预制策略:

Name: Managed-CachingDisabled
ID: 4135ea2d-6df8-44a3-9df3-4b5a84be39ad
This policy disables caching. This policy is useful for dynamic content and for requests that are not cacheable.

Name: Managed-AllViewer
ID: 216adef6-5c7f-47e4-b989-5492eafa07d3
This policy includes all values (query strings, headers, and cookies) in the viewer request.

文档参考:

https://docs.amazonaws.cn/en_us/AmazonCloudFront/latest/DeveloperGuide/using-managed-cache-policies.html

https://docs.amazonaws.cn/en_us/AmazonCloudFront/latest/DeveloperGuide/using-managed-origin-request-policies.html

【讨论】:

    【解决方案2】:

    这个错误似乎是由 name 属性引起的。对我来说,有一个'。在名称中产生错误。

    不幸的是,文档中没有对此进行任何说明: https://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-cachepolicy-cachepolicyconfig.html#cfn-cloudfront-cachepolicy-cachepolicyconfig-name

    这行得通:

    AWSTemplateFormatVersion: 2010-09-09
    
    Resources:
      CachePolicy:
        Type: AWS::CloudFront::CachePolicy
        Properties:
          CachePolicyConfig:
            DefaultTTL: 1
            MaxTTL: 1
            MinTTL: 1
            Name: test
            ParametersInCacheKeyAndForwardedToOrigin:
              CookiesConfig:
                CookieBehavior: all
              EnableAcceptEncodingBrotli: false
              EnableAcceptEncodingGzip: false
              HeadersConfig:
                HeaderBehavior: none
              QueryStringsConfig:
                QueryStringBehavior: all
    

    名称中的连字符有效:

    AWSTemplateFormatVersion: 2010-09-09
    
    Resources:
      CachePolicy:
        Type: AWS::CloudFront::CachePolicy
        Properties:
          CachePolicyConfig:
            DefaultTTL: 1
            MaxTTL: 1
            MinTTL: 1
            Name: test-id
            ParametersInCacheKeyAndForwardedToOrigin:
              CookiesConfig:
                CookieBehavior: all
              EnableAcceptEncodingBrotli: false
              EnableAcceptEncodingGzip: false
              HeadersConfig:
                HeaderBehavior: none
              QueryStringsConfig:
                QueryStringBehavior: all
    

    不起作用:

    AWSTemplateFormatVersion: 2010-09-09
    
    Resources:
      CachePolicy:
        Type: AWS::CloudFront::CachePolicy
        Properties:
          CachePolicyConfig:
            DefaultTTL: 1
            MaxTTL: 1
            MinTTL: 1
            Name: test-id.test
            ParametersInCacheKeyAndForwardedToOrigin:
              CookiesConfig:
                CookieBehavior: all
              EnableAcceptEncodingBrotli: false
              EnableAcceptEncodingGzip: false
              HeadersConfig:
                HeaderBehavior: none
              QueryStringsConfig:
                QueryStringBehavior: all
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-11-26
      • 2022-11-23
      • 2015-11-09
      • 2018-01-12
      • 2019-05-14
      • 1970-01-01
      • 2018-12-02
      • 2022-08-18
      相关资源
      最近更新 更多