당신이 점점 더 나이가 들면 당신은 하지 않습니다 Â이와 같은 몇 개의 사이트 및 블로그를 호스팅하기 위해 하나의 서버를 더 유지하고 싶지 않고 오래된 오래된 사이트 등에서도 갱신된 인증서를 암호화할 수 있는지 모니터링하십시오. 적어도 이것이 사실인 경우 나 :) 그리고 나는 그것을 완전히 관리되는 플랫폼으로 옮기기로 결정했습니다. 처음에는 Google 클라우드 저장소가 충분한 솔루션이었지만 버킷을 만들고 전체 자습서를 던진 후 https를 활성화하는 것이 쉽지도 않고(로드 밸런서 등 사용) 저렴하지도 않다는 것을 이해합니다(itâà시간당 처음 5개의 규칙당 $0.025 =>월 $18) 몇 가지 API에 대해 Google Cloud Run을 사용했으며 사용한 시간/CPU/RAM에 대해서만 비용을 지불하지만, 그다지 활동적이지 않은 웹사이트의 경우 무료 등급으로도 일부 웹사이트를 절대적으로 호스팅할 수 있습니다. 무료로 문서를 읽은 후에는 매우 간단해 보입니다. GCP 클라이언트 라이브러리를 사용할 때 Cloud Run(완전 관리형) 컨테이너 인스턴스 내에서 자격 증명을 수동으로 제공할 필요조차 없습니다! P.S.: 자신의 컨테이너를 배포하기 위한 최종 코드를 원하는 경우 github.com/kanocz/gclwebgcs를 방문하세요. 먼저 다음에서 제공하는 포트에서 수신 대기해야 합니다. 포트 환경 변수: http.ListenAndServe + os.Getenv(âÃÂÃÂPORT nil) 을 통해 GCS 환경에서 Google Cloud Storage 버킷 이름을 지정합니다(동일한 프로젝트에 있어야 함). ctx : = context.Background() 클라이언트, 오류 := storage.NewClient(ctx) 버킷 = client.Bucket(os.Getenv(âÃÂÃÂGCS 보낼 개체를 읽습니다. obj := bucket.Object(r.URL.Path[1 // 스트립 firstobjAttrs, err := obj.Attrs(ctx) obj = obj.ReadCompressed(true) // 우리는 하지 않습니다 전송을 위해 압축을 풀고 다시 압축하고 싶지 않음 // 헤더 복사 w.HeaderSet(âÃÂÃÂContent-TypeâÃÂÃÂ, objAttrs.ContentType) w.HeaderSet(âÃÂÃÂContent-EncodingâÃÂÃÂ, objAttrs.ContentEncoding) w.HeaderSet(âÃÂàContent-LengthâÃÂÃÂ, strconv.Itoa(int(objAttrs.Size w.HeaderSet(âÃÂÃÂContent-DispositionâàÃÂ, objAttrs.ContentDisposition) w.HeaderSet(âÃÂÃÂCache-ControlâÃÂÃÂ, objAttrs.CacheControl) w.HeaderSet(à ¢ÃÂÃÂETagâÃÂÃÂ, objAttrs.Etag) // 데이터 판독기 전송, err := obj.NewReader(ctx) io.Copy(w, 리더) 실제로 웹 사이트를 제공하기 위해 서버 색인이 필요하고 찾을 수 없는 오류를 처리하는 등의 작업도 필요하지만 그렇게 복잡하지도 않습니다. 만들기를 잊지 마세요. Google Cloud Build를 도와주는 go.mod :) 컨테이너 레지스트리에 배포하는 것보다 gcloud 빌드 제출 --tag gcr.io/project1/gclwebgcs (교환해주세요 project1을 프로젝트 이름으로 바꿈) 를 사용하여 서비스 생성/업데이트 gcloud beta run deploy --image gcr.io/project1/gclwebgcs \ --platform managed --set-env-vars=GCS=GCSbucketName 서비스 이름 다음에 파일을 업로드하는 것을 잊지 마십시오. 동일한 프로젝트에 GCSbucketName을 등록하고 새로운 서비스에 도메인 이름을 할당하면 SSL 인증서가 자동으로 제공 및 관리됩니다! 그게 다에요 :)