aws cloudformation CachePolicy 一般错误

vic*_*rae 6 caching amazon-cloudfront aws-cloudformation

我正在尝试创建一个转发所有内容(cookie、查询字符串和标头)的cachePolicy,并且acctualy根本不缓存任何内容:

    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
Run Code Online (Sandbox Code Playgroud)

和我的 OriginRequestPolicy:

OriginRequestPolicy:
    Type: AWS::CloudFront::OriginRequestPolicy
    Properties:
      OriginRequestPolicyConfig:
        Name: !Sub ${AWS::StackName}-origin-request
        CookiesConfig:
          CookieBehavior: all
        HeadersConfig:
          HeaderBehavior: allViewer
        QueryStringsConfig:
          QueryStringBehavior: all
Run Code Online (Sandbox Code Playgroud)

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

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
Run Code Online (Sandbox Code Playgroud)

我缺少什么?

obs:我不仅可以创建一个AWS::CloudFront::OriginRequestPolicy原因,似乎我只能有一个 OriginRequestPolicy 如果已经存在了一个 cacheRequestPolicy 。

asa*_*xen 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
Run Code Online (Sandbox Code Playgroud)

名称中的连字符起作用:

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
Run Code Online (Sandbox Code Playgroud)

不起作用:

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
Run Code Online (Sandbox Code Playgroud)