Esta página descreve os ficheiros de configuração necessários para criar um serviço gRPC gerido pelos Endpoints.
Pré-requisitos
Como ponto de partida, esta página pressupõe que:
- Um Google Cloud projeto.
- Conhecimentos básicos sobre a configuração de um serviço de API gRPC.
- Ter o gRPC e as ferramentas gRPC instalados. Leia o artigo Comece a usar o gRPC para ver detalhes.
Escolher o nome do serviço
O Cloud Endpoints usa o nome que configura no ficheiro YAML de configuração da API gRPC como o nome do seu serviço.O nome do seu serviço de API tem de ser exclusivo no Google Cloud. Uma vez que os Endpoints usam nomes compatíveis com DNS para identificar serviços, recomendamos que use o nome do domínio ou o nome do subdomínio da sua API como o nome do serviço. Com esta abordagem, o nome do serviço que aparece na página Serviços Endpoints corresponde ao nome usado nos pedidos à sua API. O Endpoints tem os seguintes requisitos para o nome do serviço:
- The maximum length of the domain name is 253 characters.
- The domain name must start with a lowercase letter.
-
Each section in the domain name, which is delimited by dots, has the following
requirements:
- Must start with a lowercase letter.
- Must not end with a dash.
- The remaining characters can be lowercase letters, numbers, or dashes.
- The maximum length is 63 characters.
Pode registar o seu próprio domínio personalizado (como example.com) ou
pode usar um domínio gerido pela Google.
Utilize um domínio gerido pela Google
A Google é proprietária e gere o domíniocloud.goog. Se quiser usar um domínio gerido pela Google, tem de usar o ID do projeto como parte do nome do serviço. Google Cloud Uma vez que Google Cloud os projetos têm um ID do projeto exclusivo
a nível global, este requisito garante que tem um nome de serviço exclusivo.
Se quiser usar o domínio cloud.goog, o nome do serviço tem de estar no formato, em que YOUR_API_NAME é o nome da sua API e YOUR_PROJECT_ID é o ID do seu projetoGoogle Cloud :
YOUR_API_NAME.endpoints.YOUR_PROJECT_ID.cloud.goog`
Para usar este domínio como o nome de domínio da API, leia o artigo
Configurar o DNS no domínio cloud.goog.
Use um domínio personalizado
Se não quiser usar um domínio gerido pela Google, pode usar um domínio personalizado (por exemplo, myapi.mycompany.com) que esteja autorizado a usar.
Antes de implementar a configuração da API, siga os passos em
Validar a propriedade do domínio.
Configurar o buffer de protocolo
Crie um ficheiro
.protopara o seu serviço. Leia o guia do programador
para ver detalhes.Compile os buffers de protocolo usando o compilador
protocpara o seu idioma. Por exemplo:protoc --proto_path=. \ --include_imports \ --include_source_info \ --descriptor_set_out=api_descriptor.pb \ bookstore.protoNo comando anterior,
--proto_pathestá definido como o diretório de trabalho atual. No seu ambiente de compilação gRPC, se usar um diretório diferente para os ficheiros de entrada.proto, altere--proto_pathpara que o compilador pesquise o diretório onde guardou o ficheiro.proto.Se o comando
protocpara gerar o ficheiro de descritor falhar, certifique-se de que:- A versão do
protocestá atualizada. - Especificou
--proto_pathou a respetiva forma abreviada-Ipara os diretórios raiz dos ficheiros.protoimportados. Pode saber mais na documentação sobre buffers do protocolo. - Especificou
--include_imports.
Se quiser que os seus clientes acedam ao seu serviço gRPC através de HTTP com JSON, tem de especificar como os dados são traduzidos de HTTP com JSON para gRPC. Recomendamos que anote as APIs definidas no seu ficheiro
.proto. Leia o artigo Transcodificação de HTTP/JSON para gRPC para mais informações.- A versão do
Configurar o ficheiro de configuração do serviço gRPC
Tem de criar um ficheiro YAML de configuração do serviço gRPC. Especifica o nome
do serviço e as restrições de utilização, como exigir uma chave de API neste ficheiro.
Pode usar o ficheiro api_config.yaml do exemplo da livraria como modelo.
Guarde uma cópia de
api_config.yaml.Introduza o nome do seu serviço no campo
name. Por exemplo:name: bookstore.endpoints.example-project-12345.cloud.googIntroduza o título apresentado na página Endpoints > Services na consola Google Cloud . Por exemplo:
title: Bookstore gRPC APIIntroduza o nome da API no campo
apis:name. O texto que introduz tem de corresponder exatamente ao nome da API totalmente qualificado do seu ficheiro.proto. Por exemplo:apis: - name: endpoints.examples.bookstore.Bookstore
Configure o resto do ficheiro. Por exemplo:
# # API usage restrictions. # usage: rules: # ListShelves methods can be called without an API Key. - selector: endpoints.examples.bookstore.Bookstore.ListShelves allow_unregistered_calls: trueLeia o artigo Regras e seletores para mais informações.
O que se segue?
Exemplos gRPC adicionais
- Versão Java do exemplo da livraria.
O exemplo
getting-started-grpcestá disponível no GitHub nos seguintes idiomas: