Go 런타임

개요

가변형 환경에서 Go 런타임은 코드를 빌드 및 실행하는 소프트웨어 스택입니다.

가변형 환경에서 Go 런타임을 선택하려면 app.yaml 파일에 다음 두 줄을 추가합니다.

runtime: go
env: flex

가변형 환경의 런타임은 Docker를 통해 빌드됩니다. Go 런타임의 소스 코드는 GitHub에 제공됩니다.

Go 버전

Go 런타임은 다음과 같은 버전을 지원합니다.

  • 1.15
  • 1.14
  • 1.13
  • 1.12
  • 1.11
  • 1.10
  • 1.9

사용자가 선택한 버전의 최신 안정화 버전을 사용합니다. App Engine은 앱 배포 시 새 출시 버전으로 자동 업데이트되지만 부 버전을 자동 업데이트하지는 않습니다.

예를 들어 애플리케이션이 Go 1.14.10에 배포되고 이후 Go 1.14.11로 자동 업데이트될 수 있지만 Go 1.15.0으로 자동 업데이트되지 않습니다.

패키지 가져오기

App Engine에 앱을 배포하면 코드가 컴파일됩니다. 배포 명령어를 실행하면 앱 종속 항목이 먼저 로컬 GOPATH에서 수집된 후 빌드 서버로 모두 전송됩니다. 누락된 종속 항목(예: 타사 라이브러리)이 있으면 빌드가 실패합니다.

앱을 배포하기 전에 로컬에서 테스트하면 빌드 실패가 방지되고 앱의 모든 종속 항목이 코드와 함께 배포되도록 할 수 있습니다.

런타임 확장

Go 런타임을 확장 및 맞춤설정하는 방법에 대한 자세한 내용은 GitHub의 Go 런타임 빌더를 참조하세요.

메타데이터 서버

애플리케이션의 각 인스턴스에서 Compute Engine 메타데이터 서버를 사용하여 호스트 이름, 외부 IP 주소, 인스턴스 ID, 커스텀 메타데이터, 서비스 계정 정보 등의 인스턴스 정보를 쿼리할 수 있습니다. App Engine에서는 인스턴스별로 커스텀 메타데이터를 설정할 수 없지만 프로젝트 차원의 커스텀 메타데이터를 설정해 App Engine 및 Compute Engine 인스턴스에서 읽는 것은 가능합니다.

cloud.google.com/go/compute/metadata 패키지를 사용하여 메타 데이터 서버에 액세스합니다.