정적 웹 페이지를 호스팅하기 위해 웹 사이트 엔드 포인트로 구성된 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" 및 NOT S3_Origin. GUI의 배포에 대한 "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
},
}]
...
}
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다