.proto 파일 및 gRPC API 구성 파일을 구성했으면 해당 파일을 배포하여 Cloud Endpoints에 API를 관리하는 데 필요한 정보를 제공합니다. Endpoints 구성을 배포하려면 gcloud
endpoints services deploy 명령어를 사용합니다. 이 명령어는 Endpoints와 기타 서비스에서 API 및 서비스를 생성하고 관리하기 위해 사용되는 Google의 기반 서비스 플랫폼인 서비스 인프라를 사용합니다. 이 페이지에서는 Endpoints에 구성 파일을 배포하는 방법을 설명합니다.
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 트랜스코딩을 사용 설정할 수 있습니다.
.proto 또는 서비스 구성 YAML 파일에서 항목을 변경할 때마다 Extensible Service Proxy(ESP)에 최신 버전의 API 서비스 구성이 포함되도록 파일을 다시 배포하세요. 이전에 ESP를 배포하면서 rollout 옵션을 managed로 설정한 경우 ESP를 다시 시작하거나 다시 배포할 필요가 없습니다. rollout=managed 옵션은 ESP가 배포된 최신 서비스 구성을 사용하도록 구성합니다. 이 옵션을 지정하면 새 서비스 구성을 배포하고 최대 5분 후 ESP가 변경사항을 감지하고 자동으로 사용하기 시작합니다. ESP에 사용할 특정 구성 ID 대신 이 옵션을 지정하는 것이 좋습니다.
초기 Endpoints 구성 배포 후에는 사용자, 서비스 계정 또는 그룹에 Endpoints 구성을 다시 배포할 수 있도록 허용하는 역할을 부여할 수 있습니다. 자세한 내용은 API에 대한 액세스 권한 부여 및 취소를 참조하세요.
[[["이해하기 쉬움","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\u003eEndpoints requires deployment of \u003ccode\u003e.proto\u003c/code\u003e and gRPC API configuration files to manage your API, using the \u003ccode\u003egcloud endpoints services deploy\u003c/code\u003e command.\u003c/p\u003e\n"],["\u003cp\u003eBefore deploying, you must set up a Google Cloud project with necessary roles, install gRPC and its tools, configure Endpoints, and verify any custom domain names.\u003c/p\u003e\n"],["\u003cp\u003eDeployment involves preparing the Google Cloud CLI, including logging in, setting the project ID, and updating components.\u003c/p\u003e\n"],["\u003cp\u003eThe deployment process utilizes \u003ccode\u003egcloud endpoints services deploy\u003c/code\u003e with the \u003ccode\u003eapi_descriptor.pb\u003c/code\u003e and \u003ccode\u003eapi_config.yaml\u003c/code\u003e files, resulting in a unique service configuration ID.\u003c/p\u003e\n"],["\u003cp\u003eRedeploying updated \u003ccode\u003e.proto\u003c/code\u003e or configuration files is necessary, with the \u003ccode\u003erollout=managed\u003c/code\u003e option for ESP enabling automatic updates within 5 minutes.\u003c/p\u003e\n"]]],[],null,["# Deploying the Endpoints configuration\n\n[OpenAPI](/endpoints/docs/openapi/deploy-endpoints-config \"View this page for the Cloud Endpoints OpenAPI docs\") \\| gRPC\n\n\u003cbr /\u003e\n\nAfter you configure your `.proto` file and [gRPC API configuration\nfile](/endpoints/docs/grpc/configure-endpoints), you deploy them so that\nCloud Endpoints has the information that it needs to manage your API. To\ndeploy the Endpoints configuration, you use the [`gcloud\nendpoints services deploy`](/sdk/gcloud/reference/endpoints/services/deploy)\ncommand. This command uses\n[Service Infrastructure](/service-infrastructure/docs/overview), Google's\nfoundational services platform, used by Endpoints and other\nservices to create and manage APIs and services. This page describes how to\ndeploy your configuration files to Endpoints.\n\nPrerequisites\n-------------\n\nAs a starting point, this page assumes that you have:\n\n- [Created a Google Cloud\n project](/resource-manager/docs/creating-managing-projects) in which you have\n the **Editor** or **Owner** role. After the initial deployment, you can grant\n the more restrictive **Service Config Editor** role. See [Granting and\n revoking access to the API](/endpoints/docs/grpc/control-api-access) for more\n information.\n\n- [Installed gRPC and the gRPC tools](https://grpc.io/docs/quickstart/)\n\n- Configured Endpoints, which includes:\n\n - [Choosing the service name](/endpoints/docs/grpc/configure-endpoints#service_name).\n - [Configuring the protocol buffer](/endpoints/docs/grpc/configure-endpoints#configuring_the_protocol_buffer).\n - [Configuring the gRPC service configuration file](/endpoints/docs/grpc/configure-endpoints#configuring_the_grpc_service_configuration_file).\n- If you use a custom domain name (such as, `example.com`), you must [verify the\n domain name](/endpoints/docs/grpc/verify-domain-name) before you can deploy\n the gRPC configuration files.\n\nPreparing Google Cloud CLI for deployment\n-----------------------------------------\n\nYou use the `gcloud` command line tool to\ndeploy the configuration. See the [gcloud Reference](/sdk/gcloud/reference) for more information about the commands.\n\nTo prepare for the deployment:\n\n1. Install and initialize the [gcloud CLI](/sdk/docs/install).\n2. Update gcloud CLI: \n\n ```text\n gcloud components update\n ```\n3. Make sure that gcloud CLI is authorized to access your data and services: \n\n ```text\n gcloud auth login\n ```\n\n A new browser tab opens and you are prompted to choose an account.\n4. Set the default project. Replace `[YOUR-PROJECT-ID]` with your GCP project ID \n\n ```text\n gcloud config set project [YOUR-PROJECT-ID]\n ```\n5. If you will be deploying your API backend to either Kubernetes or Kubernetes Engine, run the following command to acquire new user credentials to use for Application Default Credentials. The user credentials are needed to authorize `kubectl`. \n\n ```bash\n gcloud auth application-default login\n ```\n A new browser tab opens and you are prompted to choose an account.\n\nDeploying the configuration files\n---------------------------------\n\n1. Make sure you are in the directory where the `api_descriptor.pb` and `api_config.yaml` files are located.\n2. Confirm that the default project that the `gcloud` command-line tool is currently using is the Google Cloud project that you want to deploy the Endpoints configuration to. Validate the project ID returned from the following command to make sure that the service doesn't get created in the wrong project. \n\n ```\n gcloud config list project\n ```\n\n If you need to change the default project, run the following command: \n\n ```\n gcloud config set project YOUR_PROJECT_ID\n ```\n3. Deploy the `proto descriptor` file and the configuration file by using the Google Cloud CLI: \n\n ```\n gcloud endpoints services deploy api_descriptor.pb api_config.yaml\n ```\n\n As it is creating and configuring the service, Service Management outputs\n information to the terminal. When the deployment completes, a message similar to\n the following is displayed: \n\n ```\n Service Configuration [CONFIG_ID] uploaded for service [bookstore.endpoints.example-project.cloud.goog]\n ```\n\n \u003cvar translate=\"no\"\u003eCONFIG_ID\u003c/var\u003e is the unique Endpoints service configuration\n ID created by the deployment. For example: \n\n ```\n Service Configuration [2017-02-13r0] uploaded for service [bookstore.endpoints.example-project.cloud.goog]\n ```\n\n In the previous example, `2017-02-13r0` is the service\n configuration ID and\n `bookstore.endpoints.example-project.cloud.goog` is the\n service name. The service configuration ID consists of a date stamp followed by\n a revision number. If you deploy the Endpoints configuration\n again on the same day, the revision number is incremented in the service\n configuration ID.\n\nIf your service's configuration is in multiple YAML files, you can pass them all\nto the `deploy` command. For example, the Bookstore has its basic configuration\nin `api_config.yaml`, but you can enable HTTP transcoding for the service by\nalso deploying `api_config_http.yaml`, which has additional configuration for\nthis feature: \n\n gcloud endpoints services deploy api_descriptor.pb api_config.yaml api_config_http.yaml\n\n| The above gcloud command only supports one proto descriptor file and it has to be the first file in the gcloud command arguments. If you have multiple gRPC services in different proto files, please use the \\`protoc\\` command-line tool to combine them into one descriptor file.\n\nNote that if there are conflicting values in your YAML files, the values in the\nlast specified file override the others. You can find out more about how\nEndpoints handles merging multiple YAML files in\n[Configuring a gRPC service](/endpoints/docs/grpc/grpc-service-config).\n\nIf you get an error message, see [Troubleshooting Endpoints\nconfiguration deployment](/endpoints/docs/grpc/troubleshoot-config-deployment) for\ninformation on troubleshooting the error.\n\nRedeploying\n-----------\n\nWhenever you change something in your `.proto` or service configuration YAML\nfile, deploy the files again so that the Extensible Service Proxy (ESP) has\nthe most recent version of your API's service configuration. If you previously\ndeployed ESP with the [`rollout` option set to\n`managed`](/endpoints/docs/grpc/deploy-api-backend#deploying_your_api_and_esp),\nyou don't need to restart or redeploy ESP. The `rollout=managed`\noption\nconfigures ESP to use the latest deployed service configuration. When you\nspecify this option, up to 5 minutes after you deploy a new service\nconfiguration, ESP detects the change and automatically begins using it. We\nrecommend that you specify this option instead of a specific configuration ID\nfor ESP to use.\n\nAfter the initial Endpoints configuration deployment, you can\ngrant a user, service account, or group a role that allows them to redeploy the\nEndpoints configuration. See [Granting and revoking access to the\nAPI](/endpoints/docs/grpc/control-api-access) for more information.\n\nWhat's next\n-----------\n\n- [Deploying the API backend](/endpoints/docs/grpc/deploy-api-backend)\n- [Running ESP Locally or on another platform](/endpoints/docs/grpc/running-esp-localdev)\n- [Getting the service name and configuration ID](/endpoints/docs/grpc/get-service-name-config-id)"]]