Hai installato gRPC e gli strumenti gRPC. Per maggiori dettagli, consulta la guida introduttiva a gRPC.
Scegliere il nome del servizio
Cloud Endpoints utilizza il nome configurato nel
file YAML di configurazione dell'API gRPC come nome del servizio.
Il nome del servizio API deve essere univoco su Google Cloud. Poiché Endpoints utilizza nomi compatibili con il DNS per identificare i servizi, ti consigliamo di utilizzare il nome di dominio o del sottodominio dell'API come nome del servizio. Con questo approccio, il nome del servizio visualizzato nella pagina Endpoint
Servizi corrisponde al nome utilizzato nelle richieste all'API.
Endpoints ha i seguenti requisiti per il nome del servizio:
La lunghezza massima del nome di dominio è 253 caratteri.
Il nome di dominio deve iniziare con una lettera minuscola.
Ogni sezione del nome di dominio, delimitata da punti, deve soddisfare i seguenti requisiti:
Deve iniziare con una lettera minuscola.
Non deve terminare con un trattino.
Gli altri caratteri possono essere lettere minuscole, numeri o trattini.
La lunghezza massima è di 63 caratteri.
Puoi registrare un tuo dominio personalizzato (ad esempio example.com) o utilizzare un dominio gestito da Google.
Utilizzare un dominio gestito da Google
Google possiede e gestisce il dominio cloud.goog. Se vuoi utilizzare un dominio gestito da Google, devi utilizzare il tuo Google Cloud ID progetto come parte del nome del servizio. Poiché Google Cloud i progetti hanno un ID progetto univoco a livello mondiale, questo requisito garantisce che il nome del servizio sia univoco.
Se vuoi utilizzare il dominio cloud.goog, il nome del servizio deve essere nel formato, dove YOUR_API_NAME è il nome della tua API e YOUR_PROJECT_ID è il tuo ID progettoGoogle Cloud :
Se non vuoi utilizzare un dominio gestito da Google, puoi utilizzare un dominio personalizzato (ad esempio myapi.mycompany.com) di cui disponi dell'autorizzazione.
Prima di eseguire il deployment della configurazione dell'API, segui i passaggi descritti in Verificare la proprietà del dominio.
Configurazione del buffer di protocollo
Crea un file .proto per il tuo servizio. Per maggiori dettagli, consulta la Guida per gli sviluppatori .
Compila i buffer di protocollo utilizzando il
compilatore protoc
per la tua lingua. Ad esempio:
Nel comando precedente, --proto_path è impostato sulla directory di lavoro corrente. Nell'ambiente di compilazione gRPC, se utilizzi una directory diversa per i file di input .proto, modifica --proto_path in modo che il compilatore esegua la ricerca nella directory in cui hai salvato il file .proto.
Se il comando protoc per generare il file descrittore non va a buon fine, assicurati che:
Se vuoi che i tuoi client accedano al tuo servizio gRPC utilizzando HTTP con JSON, devi specificare in che modo i dati vengono tradotti da HTTP con JSON a gRPC. Ti consigliamo di annotare le API definite nel
tuo file .proto. Per ulteriori informazioni, consulta
Transcodifica di HTTP/JSON in gRPC.
Configurazione del file di configurazione del servizio gRPC
Devi creare un file YAML di configurazione del servizio gRPC. In questo file specifichi il nome del servizio e le restrizioni di utilizzo, ad esempio la richiesta di una chiave API.
Puoi utilizzare il file api_config.yaml dell'esempio Libreria come modello.
Inserisci il titolo visualizzato nella pagina Endpoints > Servizi nella Google Cloud console. Ad esempio:
title:BookstoregRPCAPI
Inserisci il nome dell'API nel campo apis:name. Il testo inserito deve corrispondere esattamente al nome completo dell'API nel file .proto. Ad
esempio:
[[["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\u003eThis guide provides instructions for configuring a gRPC service that is managed by Cloud Endpoints, including required setup steps and prerequisites.\u003c/p\u003e\n"],["\u003cp\u003eThe service name configured in the gRPC API YAML file must be unique on Google Cloud and is recommended to match the API's domain or subdomain name for easier management and potential Cloud Endpoints Portal creation.\u003c/p\u003e\n"],["\u003cp\u003eYou can use either a Google-managed domain (\u003ccode\u003ecloud.goog\u003c/code\u003e) or a custom domain for your gRPC service, each with specific requirements for naming and verification.\u003c/p\u003e\n"],["\u003cp\u003eConfiguring the protocol buffer involves creating a \u003ccode\u003e.proto\u003c/code\u003e file, compiling it with the \u003ccode\u003eprotoc\u003c/code\u003e compiler, and optionally setting up HTTP/JSON transcoding for client access.\u003c/p\u003e\n"],["\u003cp\u003eA gRPC service configuration YAML file is required to define the service name, display title, API name, and usage restrictions, such as API key requirements, within the Endpoints environment.\u003c/p\u003e\n"]]],[],null,["# Configuring Cloud Endpoints\n\n[OpenAPI](/endpoints/docs/openapi/configure-endpoints \"View this page for the Cloud Endpoints OpenAPI docs\") \\| gRPC\n\n\u003cbr /\u003e\n\nThis page describes the configuration files needed to create a gRPC service\nthat is managed by Endpoints.\n\nPrerequisites\n-------------\n\nAs a starting point, this page assumes that you have:\n\n- A [Google Cloud project](/resource-manager/docs/creating-managing-projects).\n- Basic knowledge of [configuring a gRPC API service](/endpoints/docs/grpc/grpc-service-config).\n- Installed gRPC and the gRPC tools. Read [Get started with gRPC](https://grpc.io/docs/quickstart/) for details.\n\nChoosing the service name\n-------------------------\n\nCloud Endpoints uses the name you configure in your gRPC API configuration YAML file as the name of your service.\n\nThe name of your API service must be unique on Google Cloud. Because\nEndpoints uses DNS-compatible names to identify services, we\nrecommend that you use your API's domain name or subdomain name as the service\nname. With this approach, the service name that appears on the **Endpoints\nServices** page matches the name used in requests to your API.\nEndpoints has the following requirements for the service name:\n\nYou can either register your own custom domain (such as `example.com`), or\nyou can use a domain managed by Google.\n\n### Use a domain managed by Google\n\nGoogle owns and manages the `cloud.goog` domain. If you want to use a domain managed by Google, you must use your Google Cloud project ID as part of the service name. Because Google Cloud projects have a globally unique project ID, this requirement ensures that you have a unique service name. If you want to use the `cloud.goog` domain, the service name must be in the format, where \u003cvar translate=\"no\"\u003eYOUR_API_NAME\u003c/var\u003e is the name of your API and \u003cvar translate=\"no\"\u003eYOUR_PROJECT_ID\u003c/var\u003e is your Google Cloud project ID:\n\n\u003cbr /\u003e\n\n```\nYOUR_API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog`\n```\n\nTo use this domain as the API's domain name, read\n[Configuring DNS on the `cloud.goog` domain](/endpoints/docs/grpc/cloud-goog-dns-configure).\n\n\n### Use a custom domain\n\nIf you don't want to use a domain managed by Google, you can use a custom domain\n(for example, `myapi.mycompany.com`) that you are authorized to use.\nBefore you deploy the API configuration, follow the steps in\n[Verify ownership of the domain](/endpoints/docs/grpc/verify-domain-name).\n\nConfiguring the protocol buffer\n-------------------------------\n\n1. Create a `.proto` file for your service. Read the\n [Developer guide](https://developers.google.com/protocol-buffers/docs/overview) \n\n for details.\n\n2. Compile your protocol buffers by using the\n [`protoc` compiler](https://developers.google.com/protocol-buffers/docs/pythontutorial#compiling-your-protocol-buffers)\n for your language. For example:\n\n protoc\n --proto_path=. \\\n --include_imports \\\n --include_source_info \\\n --descriptor_set_out=api_descriptor.pb \\\n bookstore.proto\n\n In the preceding command, `--proto_path` is set to the current working\n directory. In your gRPC build environment, if you use a different directory\n for `.proto` input files, change `--proto_path` so the compiler searches the\n directory where you saved your `.proto` file.\n\n If the `protoc` command to generate your descriptor file fails, make sure that:\n - Your `protoc` version is up-to-date.\n - You specified the `--proto_path` or its short form `-I` for the root directories for imported `.proto` files. You can find out more in the [protocol buffers documentation](https://developers.google.com/protocol-buffers/docs/proto3#generating).\n - You specified `--include_imports`.\n\n If you want your clients to access your gRPC service by using\n HTTP with JSON, you need to specify how data is translated from\n HTTP with JSON to gRPC. We recommend that you annotate the APIs defined in\n your `.proto` file. Read\n [Transcoding HTTP/JSON to gRPC](/endpoints/docs/grpc/transcoding)\n for more information.\n\nConfiguring the gRPC service configuration file\n-----------------------------------------------\n\nYou need to create a gRPC service configuration YAML file. You specify the name\nof the service and usage restrictions, such as requiring an API key in this file.\nYou can use the `api_config.yaml` file from the Bookstore sample as a model.\n\n1. Save a copy of\n [`api_config.yaml`](https://raw.githubusercontent.com/GoogleCloudPlatform/python-docs-samples/master/endpoints/bookstore-grpc/api_config.yaml).\n\n2. Enter the name of your service in the `name` field. For example:\n\n name: bookstore.endpoints.example-project-12345.cloud.goog\n\n3. Enter the title that is displayed on the **Endpoints** \\\u003e **Services** page in\n the Google Cloud console. For example:\n\n title: Bookstore gRPC API\n\n4. Enter the API name in the `apis:name` field. The text that you enter must\n exactly match the fully-qualified API name from your `.proto` file. For\n example:\n\n ```\n apis:\n - name: endpoints.examples.bookstore.Bookstore\n ```\n5. Configure the rest of the file. For example:\n\n #\n # API usage restrictions.\n #\n usage:\n rules:\n # ListShelves methods can be called without an API Key.\n - selector: endpoints.examples.bookstore.Bookstore.ListShelves\n allow_unregistered_calls: true\n\n Read [Rules and selectors](/endpoints/docs/grpc/grpc-service-config#rules_and_selectors)\n for more information.\n\nWhat's next\n-----------\n\n- [Deploying the Endpoints configuration](/endpoints/docs/grpc/deploy-endpoints-config)\n- [Deploying the API backend](/endpoints/docs/grpc/deploy-api-backend)\n- [Configuring authentication](/endpoints/docs/grpc/authentication-method)\n\nAdditional gRPC samples\n-----------------------\n\n- [Java version of the Bookstore sample](https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/endpoints/bookstore-grpc).\n- The `getting-started-grpc` sample is available on GitHub in the following\n languages:\n\n - [Java](https://github.com/GoogleCloudPlatform/java-docs-samples/tree/master/endpoints/getting-started-grpc)\n - [Python](https://github.com/GoogleCloudPlatform/python-docs-samples/tree/master/endpoints/getting-started-grpc)\n - [Ruby](https://github.com/GoogleCloudPlatform/ruby-docs-samples/tree/master/endpoints/getting-started-grpc)\n - [Go](https://github.com/GoogleCloudPlatform/golang-samples/tree/master/endpoints/getting-started-grpc)\n - [Node.js](https://github.com/GoogleCloudPlatform/nodejs-docs-samples/tree/master/endpoints/getting-started-grpc)"]]