이 페이지에서는 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
gcloud CLI에서 다시 인증하여 오류 메시지에 표시된 프로젝트에 대한 액세스 권한이 있는 계정으로 인증되었는지 확인합니다.
gcloud auth login
새 브라우저 탭이 열리고 계정을 선택하라는 메시지가 나타납니다.
오류 메시지에 표시된 프로젝트 ID가 Endpoints 구성을 배포할 Google Cloud 프로젝트와 일치하는지 확인합니다.
gcloud projects list
gcloud CLI에서 올바른 프로젝트 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 명령어를 다시 실행하여 디버그 정보를 표시합니다.
[[["이해하기 쉬움","easyToUnderstand","thumb-up"],["문제가 해결됨","solvedMyProblem","thumb-up"],["기타","otherUp","thumb-up"]],[["이해하기 어려움","hardToUnderstand","thumb-down"],["잘못된 정보 또는 샘플 코드","incorrectInformationOrSampleCode","thumb-down"],["필요한 정보/샘플이 없음","missingTheInformationSamplesINeed","thumb-down"],["번역 문제","translationIssue","thumb-down"],["기타","otherDown","thumb-down"]],["최종 업데이트: 2024-12-21(UTC)"],[[["\u003cp\u003eThis guide helps troubleshoot common errors encountered when deploying Cloud Endpoints configurations, offering solutions specific to issues like trailing slashes in paths, permission errors, and domain name verification problems.\u003c/p\u003e\n"],["\u003cp\u003eErrors such as "Cannot convert to service config" due to trailing slashes in OpenAPI paths can be resolved by removing the trailing slash from the specified paths in the document.\u003c/p\u003e\n"],["\u003cp\u003ePermission issues like "Not allowed to get project settings" or "Caller does not have permission" are often fixed by re-authenticating with \u003ccode\u003egcloud\u003c/code\u003e and ensuring the correct project ID and roles are set, with appropriate user permissions.\u003c/p\u003e\n"],["\u003cp\u003eDomain verification problems, such as "Ownership for domain name cannot be verified," require verifying custom domain names or confirming that the \u003ccode\u003ehost\u003c/code\u003e field in the OpenAPI document correctly uses the appropriate format, whether it be \u003ccode\u003ecloud.goog\u003c/code\u003e or \u003ccode\u003eappspot.com\u003c/code\u003e.\u003c/p\u003e\n"],["\u003cp\u003eFor unlisted errors, users are instructed to use the \u003ccode\u003egcloud --verbosity=debug endpoints services deploy openapi.yaml\u003c/code\u003e command to get debug information and obtain details that are not in this document.\u003c/p\u003e\n"]]],[],null,["# Troubleshooting Cloud Endpoints configuration deployment\n\nOpenAPI \\| [gRPC](/endpoints/docs/grpc/troubleshoot-config-deployment \"View this page for the Cloud Endpoints gRPC docs\")\n\n\u003cbr /\u003e\n\nThis page describes how to troubleshoot errors that you might encounter when you\ndeploy your Cloud Endpoints configuration. The error messages that you see\ncontain information specific to your project. For example, you might see an\nerror message that has your project ID in it. On this page you'll see\nplaceholder values such as \u003cvar translate=\"no\"\u003eYOUR_PROJECT_ID\u003c/var\u003e.\n\nAfter each step, run the `gcloud endpoints services deploy` command again to see\nif the error is resolved.\n\nCannot convert to service config\n--------------------------------\n\n`ERROR: unknown location: http: In path template '[PATH]':\nunexpected end of input '/'.'`\n\nThis error is displayed when one or more paths in your OpenAPI document\nincludes a trailing slash (`/`) character. To fix this issue, remove the\ntrailing slash from all paths. For example, the following snippet in\nan OpenAPI document results in this error:\n\n```\npaths:\n \"/echo/\":\n post:\n description: \"Echo back a given message.\"\n```\n\nTo fix this, remove the trailing slash from `/echo/`: \n\n```\npaths:\n \"/echo\":\n post:\n description: \"Echo back a given message.\"\n```\n\nNot allowed to get project settings\n-----------------------------------\n\n`ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:` \n\n`Not allowed to get project settings for project `\u003cvar translate=\"no\"\u003eYOUR_PROJECT_ID\u003c/var\u003e`\n`\n\n1. Authenticate with gcloud CLI again to confirm that you authenticated with an account that has permission to access the project displayed in the error message: \n\n ```text\n gcloud auth login\n ```\n\n A new browser tab opens and you are prompted to choose an account.\n2. Confirm that the project ID displayed in the error message corresponds to the Google Cloud project that you intend to deploy the Endpoints configuration to: \n\n ```text\n gcloud projects list\n ```\n3. Confirm that gcloud CLI has the correct project ID set as the current project: \n\n ```scdoc\n gcloud config set project YOUR_PROJECT_ID\n ```\n\nCaller does not have permission\n-------------------------------\n\n`ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:` \n\n`Caller does not have permission 'servicemanagement.services.create' on\nproject `\u003cvar translate=\"no\"\u003eYOUR_PROJECT_ID\u003c/var\u003e\n\nWhen you first deploy the Endpoints configuration,\nService Management creates a managed service for your API. To create a managed\nservice, at a minimum you must have the **Editor** role at the project level.\nAfter Service Management creates the managed service, the minimum required\npermissions to redeploy an Endpoints configuration is the\n**Service Config Editor** role (**roles/servicemanagement.configEditor** )\non the service. For more information, see\n[Granting access to the API](/endpoints/docs/openapi/control-api-access).\n\nOwnership for domain name cannot be verified\n--------------------------------------------\n\n`ERROR: (gcloud.endpoints.services.deploy) PERMISSION_DENIED:` \n\n`Ownership for domain name `\u003cvar translate=\"no\"\u003eYOUR_DOMAIN_NAME\u003c/var\u003e` on project\n`\u003cvar translate=\"no\"\u003eYOUR_PROJECT_ID\u003c/var\u003e` cannot be verified`\n\n- If you have a custom domain (such as `example.com`) configured in the `host` field of your OpenAPI document, you must [verify the domain name](/endpoints/docs/openapi/verify-domain-name) before you can deploy your OpenAPI document.\n- If you are using the `cloud.goog` domain, confirm that the value for the `host` field is in the following format, and that the project ID is correct: \n\n ```scdoc\n API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog\n ```\n- If you are using the `appspot.com` domain (supported for App Engine only), confirm that the `host` field is in the following format, and that the project ID is correct: \n\n ```scdoc\n YOUR_PROJECT_ID.appspot.com\n ```\n\nTroubleshooting other errors\n----------------------------\n\nIf you received an error not listed here, or if the information didn't\nsolve your problem, run the `gcloud` command again with the flag\nto display debug information: \n\n```text\ngcloud --verbosity=debug endpoints services deploy openapi.yaml\n```\n\nWhat's next\n-----------\n\n- [`gcloud endpoints services deploy`](/sdk/gcloud/reference/endpoints/services/deploy)\n- [Overview of API access](/endpoints/docs/openapi/api-access-overview)"]]