Instalación de gRPC y las herramientas de gRPC. Consulta la sección sobre cómo comenzar a usar gRPC para obtener más detalles.
Elige el nombre del servicio
Cloud Endpoints usa el nombre que creaste en el archivo YAML de la configuración de la API de gRPC como nombre de tu servicio.
El nombre de tu servicio de API debe ser único en Google Cloud. Dado que Endpoints usa nombres compatibles con DNS para identificar los servicios, te recomendamos que uses el nombre de dominio o de subdominio de tu API como el nombre del servicio. Según este enfoque, el nombre del servicio que aparece en la página Endpoints Services coincide con el nombre que se usa en las solicitudes para tu API.
Endpoints tiene los siguientes requisitos para el nombre del servicio:
La longitud máxima del nombre de dominio es de 253 caracteres.
El nombre de dominio debe comenzar con una letra minúscula.
Cada sección del nombre de dominio, que está delimitada por puntos, tiene los requisitos siguientes:
Debe comenzar con una letra en minúscula.
No debe terminar con un guion.
Los caracteres restantes pueden ser letras minúsculas, números o guiones.
La longitud máxima es de 63 caracteres.
Puedes registrar tu propio dominio personalizado (como example.com) o puedes usar un dominio administrado por Google.
Usa un dominio administrado por Google
Google es propietario y administra el dominio cloud.goog. Si deseas usar un dominio administrado por Google, debes usar el ID de tu proyecto de Google Cloud como parte del nombre del servicio. Dado que los proyectos de Google Cloud tienen un ID de proyecto global único, este requisito garantiza que el nombre del servicio sea único.
Si quieres usar el dominio cloud.goog, el nombre del servicio debe estar en un formato en el que YOUR_API_NAME es el nombre de tu API y YOUR_PROJECT_ID es el ID de tu proyecto deGoogle Cloud :
Si no quieres usar un dominio administrado por Google, puedes usar un dominio personalizado (por ejemplo, myapi.mycompany.com) para el cual tengas autorización.
Antes de implementar la configuración de tu API, sigue los pasos que aparecen en Verificar la propiedad del dominio.
Configura el búfer de protocolo
Crea un archivo .proto para tu servicio. Consulta la Guía para desarrolladores a fin de obtener más detalles.
Compila tus búferes de protocolo con el compilador protoc para tu lenguaje. Por ejemplo:
En el comando anterior, --proto_path está configurado en el directorio de trabajo actual. Si usas un directorio diferente para los archivos de entrada para .proto en tu entorno de compilación de gRPC, cambia --proto_path de modo que el compilador busque el directorio donde guardaste tu archivo .proto.
Si el comando protoc para generar tu archivo descriptor falla, asegúrate de que se cumplan las siguientes condiciones:
Tu versión de protoc está actualizada.
Especificaste --proto_path, o la forma corta -I, para los directorios raíz de los archivos .proto importados. Puedes obtener más información en la documentación sobre búferes de protocolo.
Especificaste --include_imports.
Si quieres que tus clientes puedan acceder a tu servicio de gRPC mediante HTTP con JSON, deberás especificar cómo se traducen los datos de HTTP con JSON a gRPC. Te recomendamos que anotes las API definidas en tu archivo .proto. Consulta la sección sobre cómo transcodificar HTTP/JSON a gRPC para obtener más información.
Establece el archivo de configuración de servicio de gRPC
Debes crear un archivo YAML de configuración de servicio de gRPC. Especifica el nombre del servicio y las restricciones de uso, como requerir una clave de API en este archivo.
Puedes usar el archivo api_config.yaml de la muestra de Bookstore como modelo.
Ingresa el título que se muestra en la página Endpoints > Services en la consola de Google Cloud . Por ejemplo:
title:BookstoregRPCAPI
Ingresa el nombre de la API en el campo apis:name. El texto que ingreses debe coincidir exactamente con el nombre de API completo de tu archivo .proto. Por ejemplo:
[[["Fácil de comprender","easyToUnderstand","thumb-up"],["Resolvió mi problema","solvedMyProblem","thumb-up"],["Otro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Información o código de muestra incorrectos","incorrectInformationOrSampleCode","thumb-down"],["Faltan la información o los ejemplos que necesito","missingTheInformationSamplesINeed","thumb-down"],["Problema de traducción","translationIssue","thumb-down"],["Otro","otherDown","thumb-down"]],["Última actualización: 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)"]]