gpt4 book ai didi

ruby - 如何使用 SDK 创建指向 S3(静态托管)网站终端节点的 AWS Cloudfront 分配?

转载 作者:太空宇宙 更新时间:2023-11-03 17:30:30 24 4
gpt4 key购买 nike

我将 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.

示例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: ""
}]
},
...
}

})

我能够通过 GUI 和 CLI 创建具有相同“原始域名”的分发版

aws cloudfront create-distribution \
--origin-domain-name example.com.s3-website-us-east-1.amazonaws.com \
--default-root-object index.html

最佳答案

静态托管在 S3 存储桶上的网站端点需要配置为“来源类型”“custom_origin”不是 S3_Origin。您可以在 GUI 中的 Distribution 的“Origins”选项卡下看到这种情况。

示例 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
},
}]
...
}

关于ruby - 如何使用 SDK 创建指向 S3(静态托管)网站终端节点的 AWS Cloudfront 分配?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40095803/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com