小编Ste*_*yew的帖子

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

我将一个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)

ruby amazon-web-services amazon-cloudfront aws-sdk-ruby

1
推荐指数
1
解决办法
925
查看次数