Nesta página, mostramos detalhes específicos do Cloud Run para desenvolvedores que querem usar o gRPC para conectar um serviço do Cloud Run a outros serviços, por exemplo, para fornecer uma comunicação simples e de alto desempenho entre microsserviços internos. É possível usar todos os tipos de gRPC, streaming ou unary, com o Cloud Run.
Os possíveis casos de uso incluem:
- Comunicação entre microsserviços internos.
- Altas cargas de dados (o gRPC usa buffers de protocolo (em inglês), que são até sete vezes mais rápidos do que as chamadas REST).
- Basta uma única definição de serviço simples. Não é necessário escrever uma biblioteca de cliente completa.
- Use gRPCs de streaming no servidor gRPC para criar aplicativos e APIs mais responsivos.
Para integrar seu serviço ao gRPC:
- Configure o serviço para usar HTTP/2 se você estiver usando o gRPC de streaming. HTTP/2 é o método de transporte para streaming de gRPC.
- Defina as mensagens de solicitação e as respostas em um arquivo proto e compile-as.
- Crie um servidor gRPC para processar solicitações e retornar respostas: ele precisa detectar a variável de ambiente
PORT
. - Crie um cliente que envie solicitações e processe respostas do servidor gRPC.
- Como opção, adicione uma autenticação.
- Crie e implante seu serviço.
Como configurar o serviço para usar HTTP/2
O Google recomenda configurar seu serviço para usar HTTP/2 se você usar o gRPC com o Cloud Run. Alguns recursos do gRPC simples funcionam sem o uso de HTTP/2. No entanto, muitos recursos do gRPC, como streaming e metadados, exigem HTTP/2.
Como definir e compilar mensagens em um arquivo proto
Não há itens extras ou específicos do Cloud Run para adicionar às suas definições de proto. Assim como qualquer outro uso do gRPC, você usa buffers de protocolo gRPC para definições de serviço e serialização de dados.
Como criar um cliente gRPC
Não há itens extras ou específicos do Cloud Run para adicionar a um cliente que usa o gRPC: siga os documentos do gRPC sobre como usar definições de serviço no código do cliente e os clientes de amostra fornecidos no Tutoriais do gRPC específicos de linguagem.
Como detectar solicitações gRPC em um serviço do Cloud Run
O único requisito especial para um servidor gRPC em execução no Cloud Run é detectar a porta especificada pela variável de ambiente PORT
, conforme mostrado no código:
Go
Como abrir uma conexão gRPC com um serviço
Para abrir uma conexão gRPC com um serviço e enviar mensagens gRPC, especifique o domínio do host, que é o URL do serviço do Cloud Run ou o domínio personalizado mapeado para esse serviço. a porta 443, que é a porta esperada para ser usada pelo gRPC.
Go
Como enviar solicitações gRPC sem autenticação
No exemplo a seguir, mostramos como enviar uma solicitação sem autenticação, usando uma conexão gRPC configurada conforme mencionado anteriormente.
Go
Como enviar solicitações gRPC com autenticação
No exemplo a seguir, mostramos como usar a autenticação entre serviços, se o serviço de chamada tiver permissão de invocador para o serviço de recebimento. Observe que esse código cria um cabeçalho de autorização que tem o token de identidade adequado: isso é obrigatório. As permissões necessárias e o cabeçalho de autorização estão descritos em detalhes na autenticação de serviço a serviço.
Go
Código de amostra para streaming gRPC
Para ver um código de amostra, consulte a implementação de RouteGuide
no
tutorial do básico do gRPC da
linguagem que você escolher. Por exemplo, para Go, consulte
Como implementar o RouteGuide.