>백엔드 개발 >Golang >Go 1.11을 사용하여 Google App Engine 표준에서 비공개 Go 모듈을 인증하는 방법은 무엇입니까?

Go 1.11을 사용하여 Google App Engine 표준에서 비공개 Go 모듈을 인증하는 방법은 무엇입니까?

Linda Hamilton
Linda Hamilton원래의
2024-10-26 07:52:30417검색

How to Authenticate Private Go Modules in Google App Engine Standard with Go 1.11?

Go 1.11을 사용하여 Google App Engine 표준에서 비공개 Go 모듈 인증

Go App Engine 표준 프로젝트를 Go 1.11 모듈로 업데이트할 때 인증 개인 모듈의 경우 문제가 발생할 수 있습니다. 기본적으로 Google Cloud 빌드 시스템은 비공개 저장소에 액세스할 수 없습니다.

오류:

비공개 모듈이 포함된 프로젝트를 배포하려고 하면 오류가 발생합니다. 다음과 유사한 상황이 발생할 수 있습니다.

ERROR: (gcloud.app.deploy) Error Response: [9] Cloud build <GUI> 
status: FAILURE.
Build error details: go: bitbucket.org/[email protected]: 
https://api.bitbucket.org/2.0/repositories/myPrivateRepo?fields=scm: 
403 Forbidden

Can It Be Done?

예, Go 1.11 모듈을 사용하여 App Engine Standard에서 비공개 모듈을 인증하는 것이 가능합니다. . 그러나 파일을 GOPATH로 이동하는 것에 대한 마이그레이션 문서의 지침은 오해의 소지가 있습니다. 새로운 모듈 시스템은 실제로 GOPATH 외부에 코드를 유지하도록 설계되었습니다.

해결책: 모듈 교체 사용

자격 증명을 관리하는 대신 Go의 모듈 교체 기능. 이를 통해 로컬 프로젝트는 빌드 중에 비공개 모듈의 로컬 복사본을 사용할 수 있습니다.

방법:

  1. 빌드 디렉터리 만들기: 메인 프로젝트 디렉토리 내에 빌드 디렉토리를 생성합니다.
  2. 소스 코드를 심볼릭 링크합니다: 프로젝트의 src 디렉토리를 빌드 디렉토리 내의 src 디렉토리에 연결합니다.
  3. 비공개 모듈 복제 또는 복사: 빌드 내 모듈 디렉터리의 하위 디렉터리에 필요한 비공개 모듈을 복제하거나 복사합니다.
  4. GAE 관련 go.mod 파일 만들기: 빌드 디렉터리의 루트에서 교체 지시문을 사용하여 비공개 모듈을 참조하는 새 go.mod 파일을 만듭니다. 예를 들면 다음과 같습니다.
module myServiceGAE

require (
    bitbucket.org/me/myService v0.0.0
    google.golang.org/appengine v1.4.0
)

replace bitbucket.org/me/myService => ./src
replace bitbucket.org/me/myModule => ./modules/utils

장점:

  • 프로젝트와 GAE 간의 우려 사항을 분리합니다.
  • 비GAE 환경을 위한 패키지

단점:

  • 개인 모듈이 다른 개인 모듈에 의존하는 경우 복잡해질 수 있음

위 내용은 Go 1.11을 사용하여 Google App Engine 표준에서 비공개 Go 모듈을 인증하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.