CloudFront 不能使用 S3 网站来源,只能使用 REST 来源 Cloudformation
Posted
技术标签:
【中文标题】CloudFront 不能使用 S3 网站来源,只能使用 REST 来源 Cloudformation【英文标题】:CloudFront can't use S3 Website origin, only REST origin Cloudformation 【发布时间】:2017-08-08 01:43:24 【问题描述】:我正在尝试使用 S3 源自动启动 CloudFront 分配。我想将来源设置为 S3 网站 URL,例如mysite.com.s3-website-us-east-1.amazonaws.com
。所以,我认为我的 Cloudformation 模板应该是这样的:
"AWSTemplateFormatVersion" : "2010-09-09",
"Resources" :
"myDistribution" :
"Type" : "AWS::CloudFront::Distribution",
"Properties" :
"DistributionConfig" :
"Origins" : [
"DomainName" : "mysite.com.s3-website-us-east-1.amazonaws.com",
"Id" : "myS3Origin",
...
但是,这会产生以下错误:
参数 Origin DomainName 未引用有效的 S3 存储桶。
这是真的,所以我可以指定 S3 存储桶。但我希望我的来源是网站端点。我的非自动化解决方法是使用 S3 REST 端点进行部署,然后在 UI 中更新源。
"AWSTemplateFormatVersion" : "2010-09-09",
"Resources" :
"myDistribution" :
"Type" : "AWS::CloudFront::Distribution",
"Properties" :
"DistributionConfig" :
"Origins" : [
"DomainName" : "mysite.com.s3.amazonaws.com",
"Id" : "myS3Origin",
...
根据文档:
Amazon Simple Storage Service (S3) 存储桶的 DNS 名称或您希望 CloudFront 从中获取此源的对象的 HTTP 服务器。
我找不到有关网站端点来源的任何信息。 http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloudfront-origin.html#cfn-cloudfront-origin-originpath
【问题讨论】:
【参考方案1】:我认为您并未包含配置的所有相关部分。
这里的问题是,作为 S3 网站托管端点的源不是 S3 源——它是一个自定义源。
存储桶的 REST 端点以外的任何内容始终是自定义来源。
【讨论】:
谢谢!这使我得到了最终的答案,对格式感到抱歉;你值得称赞。 “资源”:“CloudFrontDistribution”:“类型”:“AWS::CloudFront::Distribution”,“DependsOn”:“S3RedirectBucket”,“属性”:“DistributionConfig”:“起源”:[“域名” “:“mysite.s3-website-us-east-1.amazonaws.com”,“Id”:“MyWebsiteOrigin”,“CustomOriginConfig”:“HTTPPort”:80,“HTTPSPort”:443,“OriginProtocolPolicy”:“ http"以上是关于CloudFront 不能使用 S3 网站来源,只能使用 REST 来源 Cloudformation的主要内容,如果未能解决你的问题,请参考以下文章
通过 S3 从 Amazon CloudFront 提供 gzip 后的 CSS 和 JavaScript
在 CloudFront/S3 中托管 Angular 应用程序 *无需* S3 静态网站托管