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

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

Linda Hamilton
Linda Hamilton원래의
2024-10-26 01:03:27677검색

How to Authenticate a Private Go Module on Google App Engine Standard Using Go 1.11?

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

Go 1.11에서는 모듈을 도입하여 보다 효율적인 방법을 제공합니다. 의존성을 관리하는 것입니다. 그러나 Google App Engine Standard에서 비공개 모듈을 사용하는 경우 인증 문제가 발생할 수 있습니다. 이 문제는 gcloud 앱 배포를 시도하고 403 Forbidden 오류가 발생할 때 명백히 드러납니다.

이 문제를 해결하기 위해 벤더링이나 타사 종속성 관리 도구(예: DEP) 사용과 같은 전통적인 접근 방식이 채택되었습니다. 그러나 새로운 모듈 시스템에서는 이러한 솔루션이 이상적이지 않을 수 있습니다.

모듈 교체를 사용한 솔루션

자격증명을 처리하는 대신 실행 가능한 솔루션은 Go의 GAE가 로컬 코드를 사용하도록 지시하는 모듈 교체 기능입니다. 이 접근 방식에는 다음이 포함됩니다.

  1. 디렉터리 구조 설정:

    다음 디렉토리 구조로 프로젝트를 구성합니다.

    myService/
    |__ src/
    |    |__ service.go
    |    |__ go.mod
    |__ build/
       |__ gae/
           |__ src/  // Symlink to ../../src
           |__ modules/  // Git ignored
           |__ app.go
           |__ go.mod
           |__ app.yaml
  2. GAE go.mod 수정:

    gae 디렉토리에 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
  3. 개인 모듈 복제 또는 복사:

    gae 디렉토리 아래의 모듈 폴더에서 이전에 개인 모듈을 복제하거나 복사합니다.

이 접근 방식을 사용하면 비공개 모듈 코드를 기본 프로젝트와 별도로 유지하면서 배포 중에 GAE가 올바른 버전을 사용하도록 할 수 있습니다.

장점:

  • GAE에서 전용 모듈을 분리하여 다른 플랫폼에 쉽게 배포할 수 있습니다.
  • 추가 종속성 관리 도구가 필요하지 않습니다.

단점:

  • 다른 비공개 모듈에 종속된 비공개 모듈을 처리할 때 더 복잡해집니다.

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

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