Endpoints 구성 배포

.proto 파일 및 gRPC API 구성 파일을 구성했으면 해당 파일을 배포하여 Cloud Endpoints에 API를 관리하는 데 필요한 정보를 제공합니다. Endpoints 구성을 배포하려면 gcloud endpoints services deploy 명령어를 사용합니다. 이 명령어는 Endpoints와 기타 서비스에서 API 및 서비스를 생성하고 관리하기 위해 사용되는 Google의 기반 서비스 플랫폼인 서비스 인프라를 사용합니다. 이 페이지에서는 Endpoints에 구성 파일을 배포하는 방법을 설명합니다.

기본 요건

이 페이지에서는 먼저 사용자가 다음 작업을 완료했다고 가정합니다.

Google Cloud CLI 배포 준비

gcloud 명령줄 도구를 사용해 구성을 배포할 수 있습니다. 명령어에 대한 자세한 내용은 gcloud 참조를 참조하세요.

배포를 준비하려면 다음 안내를 따르세요.

  1. gcloud CLI를 설치하고 초기화합니다.
  2. gcloud CLI를 업데이트합니다.
    gcloud components update
    
  3. gcloud CLI가 데이터와 서비스에 액세스할 수 있는 권한이 있는지 확인합니다.
    gcloud auth login
    

    새 브라우저 탭이 열리고 계정을 선택하라는 메시지가 나타납니다.

  4. 기본 프로젝트를 설정합니다. [YOUR-PROJECT-ID]를 GCP 프로젝트 ID로 바꿉니다.
    gcloud config set project [YOUR-PROJECT-ID]
    
  5. API 백엔드를 Kubernetes 또는 Kubernetes Engine에 배포하려면 다음 명령어를 실행하여 애플리케이션 기본 사용자 인증 정보로 사용할 새로운 사용자 인증 정보를 가져옵니다. 사용자 인증 정보는 kubectl를 승인하는 데 필요합니다.
    gcloud auth application-default login
    새 브라우저 탭이 열리고 계정을 선택하라는 메시지가 나타납니다.

구성 파일 배포

  1. 현재 위치가 api_descriptor.pbapi_config.yaml 파일이 있는 디렉터리인지 확인합니다.
  2. gcloud 명령줄 도구에 현재 사용 중인 기본 프로젝트가 Endpoints 구성을 배포하려는 Google Cloud 프로젝트인지 확인합니다. 잘못된 프로젝트에 서비스가 만들어지지 않도록 다음 명령어로 반환되는 프로젝트 ID를 확인합니다.
    gcloud config list project
    

    기본 프로젝트를 변경해야 하는 경우 다음 명령어를 실행합니다.

    gcloud config set project YOUR_PROJECT_ID
    
  3. Google Cloud CLI를 사용하여 proto descriptor 파일 및 구성 파일을 배포합니다.
    gcloud endpoints services deploy api_descriptor.pb api_config.yaml
    

    Service Management에서 서비스를 만들고 구성하면서 터미널에 정보를 출력합니다. 배포가 완료되면 다음과 유사한 메시지가 표시됩니다.

    Service Configuration [CONFIG_ID] uploaded for service [bookstore.endpoints.example-project.cloud.goog]

    CONFIG_ID는 배포 시 만들어진 고유한 Endpoints 서비스 구성 ID입니다. 예를 들면 다음과 같습니다.

    Service Configuration [2017-02-13r0] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
    

    이전 예시에서 2017-02-13r0은 서비스 구성 ID이고 bookstore.endpoints.example-project.cloud.goog는 서비스 이름입니다. 서비스 구성 ID는 날짜 스탬프와 버전 번호로 구성됩니다. 같은 날짜에 Endpoints 구성을 다시 배포하면 서비스 구성 ID에서 버전 번호가 증가합니다.

서비스 구성이 YAML 파일 여러 개에 있는 경우, deploy 명령어에 모두 전달할 수 있습니다. 예를 들어 Bookstore에는 api_config.yaml에 기본 구성이 있지만 이 기능에 대한 추가 구성이 있는 api_config_http.yaml을 배포하여 서비스에 대한 HTTP 트랜스코딩을 사용 설정할 수 있습니다.

gcloud endpoints services deploy api_descriptor.pb api_config.yaml api_config_http.yaml

YAML 파일에 충돌하는 값이 있는 경우, 마지막으로 지정한 파일의 값이 다른 값을 재정의한다는 점에 유의하세요. gRPC 서비스 구성에서는 Endpoints가 여러 YAML 파일 병합을 처리하는 방법에 대해 자세히 알아볼 수 있습니다.

오류 메시지가 표시되는 경우, 오류 문제해결에 대한 자세한 내용은 Endpoints 구성 배포 문제해결을 참조하세요.

재배포

.proto 또는 서비스 구성 YAML 파일에서 항목을 변경할 때마다 Extensible Service Proxy(ESP)에 최신 버전의 API 서비스 구성이 포함되도록 파일을 다시 배포하세요. 이전에 ESP를 배포하면서 rollout 옵션을 managed로 설정한 경우 ESP를 다시 시작하거나 다시 배포할 필요가 없습니다. rollout=managed 옵션은 ESP가 배포된 최신 서비스 구성을 사용하도록 구성합니다. 이 옵션을 지정하면 새 서비스 구성을 배포하고 최대 5분 후 ESP가 변경사항을 감지하고 자동으로 사용하기 시작합니다. ESP에 사용할 특정 구성 ID 대신 이 옵션을 지정하는 것이 좋습니다.

초기 Endpoints 구성 배포 후에는 사용자, 서비스 계정 또는 그룹에 Endpoints 구성을 다시 배포할 수 있도록 허용하는 역할을 부여할 수 있습니다. 자세한 내용은 API에 대한 액세스 권한 부여 및 취소를 참조하세요.

다음 단계