Depois de configurar o arquivo .proto e o arquivo de configuração da API gRPC, implante-os para que o Cloud Endpoints tenha as informações necessárias para gerenciar sua API. Para implantar a configuração do Endpoints, use o comando gcloud
endpoints services deploy. Esse comando usa a Service Infrastructure, a plataforma de serviços fundamentais do Google. Ela é usada pelo Endpoints e por outros serviços para criar e gerenciar APIs e serviços. Nesta página, você encontrará instruções sobre como implantar seus arquivos de configuração no Endpoints.
Pré-requisitos
Como ponto de partida, nesta página presume-se que você:
Verifique se a gcloud CLI está autorizada a acessar seus dados e serviços:
gcloud auth login
Uma nova guia do navegador será aberta e você precisará escolher uma conta.
Defina o projeto padrão. Substitua [YOUR-PROJECT-ID] pelo ID do projeto do GCP.
gcloud config set project [YOUR-PROJECT-ID]
Se você estiver implantando o back-end da API para o Kubernetes ou Kubernetes Engine, execute o comando a seguir para receber novas credenciais de usuário para o Application Default Credentials. As credenciais de usuário são necessárias para autorizar kubectl.
gcloudauthapplication-defaultlogin
Uma nova guia do navegador será aberta e você precisará escolher uma conta.
Como implantar arquivos de configuração
Verifique se você está no diretório onde os arquivos api_descriptor.pb e api_config.yaml estão localizados.
Confirme se o projeto padrão que a ferramenta de linha de comando gcloud está usando no momento é o projeto Google Cloud em que você quer implantar a configuração do Endpoints. Valide o código do projeto retornado do comando a seguir para garantir que o serviço não seja criado no projeto incorreto.
gcloud config list project
Se você precisar alterar o projeto padrão, execute o comando:
gcloud config set project YOUR_PROJECT_ID
Implante o arquivo proto descriptor e o arquivo de configuração
usando a
Google Cloud CLI:
Durante a criação e a configuração do serviço, o Service Management envia informações ao terminal. Quando a implantação for concluída, uma mensagem parecida com esta será exibida:
Service Configuration [CONFIG_ID] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
CONFIG_ID é o ID exclusivo de configuração de serviço do Endpoints
criado pela implantação. Exemplo:
Service Configuration [2017-02-13r0] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
No exemplo anterior, 2017-02-13r0 é o ID de configuração do serviço e bookstore.endpoints.example-project.cloud.goog é o nome do serviço. O código de configuração do serviço consiste em um carimbo de data e um número de revisão. Se você implantar novamente a configuração do Endpoints no mesmo dia, o número de revisão será alterado no código da configuração do serviço.
Se a configuração de seu serviço estiver em vários arquivos YAML, será possível passá-los para o comando deploy. Por exemplo, o Bookstore tem a configuração básica em api_config.yaml, mas é possível ativar a transcodificação HTTP para o serviço implantando api_config_http.yaml também, que tem configuração adicional para este recurso:
Observe que, se houver valores conflitantes nos seus arquivos YAML, os valores no arquivo especificado por último substituem os demais. Para saber mais sobre como o Endpoints processa a mesclagem de vários arquivos YAML, consulte Como configurar um serviço da API gRPC.
Sempre que você alterar um item no arquivo YAML de configuração do serviço ou .proto, implante os arquivos novamente para que o Extensible Service Proxy (ESP) tenha a versão mais recente da configuração de serviço da API. Se você já tiver implementado o ESP com a opção rollout definida como managed, não será necessário reiniciar nem reimplantar o ESP. A opção rollout=managed
configura o ESP para usar a implantação mais recente da configuração do serviço. Quando você especifica essa opção, até 5 minutos depois de implantar uma nova configuração de serviço, o ESP detecta a alteração e começa a usá-la automaticamente. Recomendamos especificar essa opção em vez de um ID de configuração específico para uso do ESP.
Após a implantação inicial da configuração do Endpoints, é possível conceder a um usuário, conta de serviço ou grupo um papel que permita a reimplantação da configuração do Endpoints. Consulte Como conceder e revogar o acesso à API para mais informações.
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-09-04 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)"]]