CloudFormation 使用日志存储桶创建 CloudFront 分配

Posted

技术标签:

【中文标题】CloudFormation 使用日志存储桶创建 CloudFront 分配【英文标题】:CloudFormation creation of CloudFront distribution with logging bucket 【发布时间】:2016-06-21 09:23:24 【问题描述】:

尝试配置由 CloudFront 分发的静态网站存储桶。

如果我省略了分配的 Logging 配置,则以下 CloudFormation 模板有效:


...

"PrimeBucket": 
    "Properties": 
        "AccessControl": "PublicRead",
        "WebsiteConfiguration": 
            "ErrorDocument": "error.html",
            "IndexDocument": "index.html"
        
    ,
    "Type": "AWS::S3::Bucket"
,
"PrimeBucketDistribution": 
    "Properties": 
        "DistributionConfig": 
            "DefaultCacheBehavior": 
                "AllowedMethods": [
                    "GET",
                    "HEAD",
                    "OPTIONS"
                ],
                "ForwardedValues": 
                    "QueryString": "false"
                ,
                "TargetOriginId": "BucketOrigin",
                "ViewerProtocolPolicy": "allow-all"
            ,
            "Enabled": "true",
            "Logging": 
                "Bucket": 
                    "Ref": "PrimeBucketLogs"
                ,
                "IncludeCookies": "false"
            ,
            "Origins": [
                
                    "DomainName": 
                        "Fn::GetAtt": [
                            "PrimeBucket",
                            "DomainName"
                        ]
                    ,
                    "Id": "BucketOrigin",
                    "S3OriginConfig": 
                
            ]
        
    ,
    "Type": "AWS::CloudFront::Distribution"
,
"PrimeBucketLogs": 
    "Type": "AWS::S3::Bucket"


如果我包含 Logging 我会收到错误:

The parameter Logging Bucket does not refer to a valid S3 bucket.

是否需要对日志存储桶应用任何额外的魔法才能使其与 CloudFront 兼容?在文档中找不到任何内容。

【问题讨论】:

你有没有设法解决这个问题? 不记得了:( 【参考方案1】:

尝试将您的存储桶名称指定为 "bucketname.s3.amazonaws.com" 而不仅仅是 "bucketname"

【讨论】:

以上是关于CloudFormation 使用日志存储桶创建 CloudFront 分配的主要内容,如果未能解决你的问题,请参考以下文章

使用 cloudformation 为 S3 存储桶启用 Lambda 函数

使用 CloudFormation 在 S3 存储桶中创建 Lambda 通知

如何使用 cloudformation 为 S3 存储桶设置半随机名称

CloudFormation 中如何派生 S3 存储桶名称?

AWS Cloudformation 模板 - 在 S3 存储桶中设置区域

CloudFormation 模板设置 S3 存储桶默认加密 [重复]