Dopo aver configurato il file .proto e il file di configurazione dell'API gRPC, esegui il loro deployment in modo che Cloud Endpoints disponga delle informazioni necessarie per gestire l'API. Per eseguire il deployment della configurazione di Endpoints, utilizza il comando gcloud
endpoints services deploy. Questo comando utilizza Service Infrastructure, la piattaforma di servizi di base di Google, utilizzata da Endpoints e altri servizi per creare e gestire API e servizi. Questa pagina descrive come eseguire il deployment dei file di configurazione in Endpoints.
Prerequisiti
Per iniziare, questa pagina presuppone che tu abbia:
Se utilizzi un nome di dominio personalizzato (ad esempio example.com), devi verificare il nome di dominio prima di poter eseguire il deployment dei file di configurazione gRPC.
Preparazione di Google Cloud CLI per il deployment
Utilizza lo strumento a riga di comando gcloud per eseguire il deployment della configurazione. Per ulteriori informazioni sui comandi, consulta la
documentazione di riferimento di gcloud.
Assicurati che gcloud CLI sia autorizzata ad accedere ai tuoi dati e ai tuoi servizi:
gcloud auth login
Si apre una nuova scheda del browser e ti viene chiesto di scegliere un account.
Imposta il progetto predefinito. Sostituisci [YOUR-PROJECT-ID] con l'ID del tuo progetto Google Cloud
gcloud config set project [YOUR-PROJECT-ID]
Se esegui il deployment del backend dell'API su Kubernetes o Kubernetes Engine, esegui il seguente comando per acquisire nuove credenziali utente da utilizzare per le Credenziali predefinite dell'applicazione. Le credenziali utente sono necessarie per autorizzarekubectl.
gcloudauthapplication-defaultlogin
Si apre una nuova scheda del browser e ti viene chiesto di scegliere un account.
Eseguire il deployment dei file di configurazione
Assicurati di trovarti nella directory in cui si trovano i file api_descriptor.pb
e api_config.yaml.
Verifica che il progetto predefinito attualmente utilizzato dallo strumento a riga di comando gcloud sia il progetto in cui vuoi eseguire il deployment della configurazione di Endpoints. Google Cloud Convalida l'ID progetto
restituito dal seguente comando per assicurarti che il servizio non venga
creato nel progetto sbagliato.
gcloud config list project
Se devi modificare il progetto predefinito, esegui il seguente comando:
gcloud config set project YOUR_PROJECT_ID
Esegui il deployment del file proto descriptor e del file di configurazione
utilizzando
l'interfaccia a Google Cloud CLI:
Durante la creazione e la configurazione del servizio, Service Management visualizza informazioni sul terminale. Al termine del deployment, viene visualizzato un messaggio simile al seguente:
Service Configuration [CONFIG_ID] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
CONFIG_ID è l'ID univoco della configurazione del servizio Endpoints creato dal deployment. Ad esempio:
Service Configuration [2017-02-13r0] uploaded for service [bookstore.endpoints.example-project.cloud.goog]
Nell'esempio precedente, 2017-02-13r0 è l'ID configurazione del servizio e bookstore.endpoints.example-project.cloud.goog è il nome del servizio. L'ID configurazione del servizio è costituito da un timestamp seguito da un numero di revisione. Se esegui nuovamente il deployment della configurazione di Endpoints nello stesso giorno, il numero di revisione viene incrementato nell'ID configurazione del servizio.
Se la configurazione del servizio si trova in più file YAML, puoi passarli tutti al comando deploy. Ad esempio, la libreria ha la sua configurazione di base
in api_config.yaml, ma puoi attivare la transcodifica HTTP per il servizio anche tramite
il deployment di api_config_http.yaml, che ha una configurazione aggiuntiva per
questa funzionalità:
Tieni presente che se i file YAML contengono valori in conflitto, i valori nell'ultimo file specificato sostituiscono gli altri. Puoi scoprire di più su come Endpoints gestisce l'unione di più file YAML in Configurazione di un servizio gRPC.
Ogni volta che modifichi qualcosa nel file YAML .proto o di configurazione del servizio, esegui nuovamente il deployment dei file in modo che il Extensible Service Proxy (ESP) abbia la versione più recente della configurazione del servizio dell'API. Se in precedenza hai eseguito il deployment dell'ESP con l'opzione rollout impostata su managed, non è necessario riavviare o eseguire nuovamente il deployment dell'ESP. L'opzione rollout=managed
configura ESP in modo da utilizzare la configurazione del servizio di cui è stato eseguito il deployment più di recente. Quando
specifichi questa opzione, fino a 5 minuti dopo aver eseguito il deployment di una nuova configurazione
del servizio, ESP rileva la modifica e inizia a utilizzarla automaticamente. Ti consigliamo di specificare questa opzione anziché un ID configurazione specifico da utilizzare per ESP.
Dopo il primo dispiegamento della configurazione di Endpoints, puoi assegnare a un utente, a un account di servizio o a un gruppo un ruolo che consenta di eseguire nuovamente il dispiegamento della configurazione di Endpoints. Per ulteriori informazioni, consulta la sezione Concedere e revocare l'accesso all'API.
[[["Facile da capire","easyToUnderstand","thumb-up"],["Il problema è stato risolto","solvedMyProblem","thumb-up"],["Altra","otherUp","thumb-up"]],[["Difficile da capire","hardToUnderstand","thumb-down"],["Informazioni o codice di esempio errati","incorrectInformationOrSampleCode","thumb-down"],["Mancano le informazioni o gli esempi di cui ho bisogno","missingTheInformationSamplesINeed","thumb-down"],["Problema di traduzione","translationIssue","thumb-down"],["Altra","otherDown","thumb-down"]],["Ultimo aggiornamento 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)"]]