Ste*_*yew 1 ruby amazon-web-services amazon-cloudfront aws-sdk-ruby
我将一个S3存储桶配置为网站终结点,以托管静态网页。
我想将Cloudfront放在它前面。
我从S3存储桶的“属性” :: “静态网站托管”中复制了“端点” 。
它的形式为: “ example.com.s3-website-us-east-1.amazonaws.com”
当我尝试使用Aws SDK CloudFront客户端进行create_distribution时,出现以下错误:
Aws::CloudFront::Errors::InvalidArgument
The parameter Origin DomainName does not refer to a valid S3 bucket.
Run Code Online (Sandbox Code Playgroud)
Ruby代码示例如下:
cloudfront = Aws::CloudFront::Client.new()
cloudfront.create_distribution({
distribution_config: {
...
origins: {
quantity: 1,
items: [{
id: "Custom-example.com.s3-website-us-east-1.amazonaws.com",
domain_name: "example.com.s3-website-us-east-1.amazonaws.com",
s3_origin_config: {
origin_access_identity: ""
},
origin_path: ""
}]
},
...
}
Run Code Online (Sandbox Code Playgroud)
})
我可以通过GUI和CLI使用相同的“原始域名”创建分发
aws cloudfront create-distribution \
--origin-domain-name example.com.s3-website-us-east-1.amazonaws.com \
--default-root-object index.html
Run Code Online (Sandbox Code Playgroud)
静态托管在S3存储桶上的网站端点需要配置为“来源类型” “ custom_origin”而不是 S3_Origin。您可以在GUI的“分发”的“来源”选项卡下看到这种情况。
样本Ruby代码:
distribution_config: {
...
origins: {
quantity: 1,
items: [{
id: "Custom-example.com.s3-website-us-east-1.amazonaws.com",
domain_name: "example.com.s3-website-us-east-1.amazonaws.com",
custom_origin_config: {
http_port: 80, # required
https_port: 443, # required
origin_protocol_policy: "http-only", # required, accepts http-only, match-viewer, https-only
},
}]
...
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
925 次 |
| 最近记录: |