Cloud Endpoints 구성 배포 문제해결

이 페이지에서는 Cloud Endpoints 구성을 배포할 때 발생할 수 있는 오류의 문제해결 방법을 설명합니다. 표시되는 오류 메시지에는 프로젝트 관련 정보가 포함됩니다. 예를 들어 프로젝트 ID가 포함된 오류 메시지가 표시될 수 있습니다. 이 페이지에서는 YOUR_PROJECT_ID와 같은 자리표시자 값이 사용됩니다.

각 단계 이후에 gcloud endpoints services deploy 명령어를 다시 실행하여 오류가 해결되었는지 확인하세요.

서비스 구성으로 변환할 수 없음

ERROR: unknown location: http: In path template '[PATH]': unexpected end of input '/'.'

OpenAPI 문서에서 경로 한 개 이상에 후행 슬래시(/) 문자가 포함되면 이 오류가 표시됩니다. 이 문제를 해결하려면 모든 경로에서 후행 슬래시를 삭제합니다. 예를 들어 OpenAPI 문서에 다음과 같은 스니펫이 있으면 이 오류가 발생합니다.

paths:
  "/echo/":
    post:
      description: "Echo back a given message."

이 문제를 해결하려면 /echo/에서 후행 슬래시를 삭제합니다.

paths:
  "/echo":
    post:
      description: "Echo back a given message."

프로젝트 설정을 가져올 수 없음

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Not allowed to get project settings for project YOUR_PROJECT_ID

  1. Cloud SDK에서 다시 인증하여 오류 메시지에 표시된 프로젝트에 대한 액세스 권한이 있는 계정으로 인증되었는지 확인합니다.
    gcloud auth login
    

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

  2. 오류 메시지에 표시된 프로젝트 ID가 Endpoints 구성을 배포할 Google Cloud 프로젝트와 일치하는지 확인합니다.
    gcloud projects list
    
  3. Cloud SDK에서 올바른 프로젝트 ID가 현재 프로젝트로 설정되어 있는지 확인합니다.
    gcloud config set project YOUR_PROJECT_ID
    

호출자에게 권한 없음

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Caller does not have permission 'servicemanagement.services.create' on project YOUR_PROJECT_ID

처음으로 Endpoints 구성을 배포하면 Service Management가 API의 관리형 서비스를 만듭니다. 관리형 서비스를 만들려면 최소한 프로젝트 수준에서 편집자 역할이 있어야 합니다. Service Management가 관리형 서비스를 만든 후, Endpoints 구성을 다시 배포하기 위해 필요한 최소 권한은 서비스에 대한 서비스 구성 편집자 역할(roles/servicemanagement.configEditor)입니다. 자세한 내용은 API에 대한 액세스 권한 부여를 참조하세요.

도메인 이름 소유권을 확인할 수 없음

ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:
Ownership for domain name YOUR_DOMAIN_NAME on project YOUR_PROJECT_ID cannot be verified

  • OpenAPI 문서의 host 필드에 커스텀 도메인(예: example.com)이 구성되어 있는 경우 OpenAPI 문서를 배포하려면 먼저 도메인 이름을 확인해야 합니다.
  • cloud.goog 도메인이 사용 중이면 host 필드 값이 다음과 같은 형식이고 프로젝트 ID가 올바른지 확인합니다.
    API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog
    
  • appspot.com 도메인(App Engine에만 지원됨)이 사용 중이면 host 필드가 다음과 같은 형식이고 프로젝트 ID가 올바른지 확인합니다.
    YOUR_PROJECT_ID.appspot.com
    

기타 오류 해결

여기에 나열되지 않은 오류가 발생하거나 정보로 문제를 해결할 수 없는 경우에는 플래그와 함께 gcloud 명령어를 다시 실행하여 디버그 정보를 표시합니다.

gcloud --verbosity=debug endpoints services deploy openapi.yaml

다음 단계