Como invocar com uma solicitação HTTPS

É possível enviar solicitações HTTPS de qualquer lugar que consiga fazer solicitações HTTPS para acionar um serviço hospedado no Cloud Run. Todos os serviços do Cloud Run têm um URL de HTTPS estável.

Alguns dos casos de uso incluem:

  • API Web RESTful personalizada
  • Microsserviço particular
  • Middleware de HTTP ou proxy reverso para seus aplicativos da Web
  • Aplicativo da Web pré-empacotado

Como criar serviços públicos

A criação de um serviço público no Cloud Run requer:

  • Acesso ao serviço a partir da Internet pública
  • Um URL destinado ao uso público

Para tornar um serviço público, configure seu serviço para permitir acesso não autenticado (público) quando você implantar ou a qualquer momento após implantar.

É possível usar o URL estável e atribuído automaticamente na primeira implantação de seu serviço como o URL público no Cloud Run. Para determinar o URL de um serviço implantado:

gcloud run services describe SERVICE --format 'value(status.url)'

O URL de um serviço do Cloud Run tem o formato https://[TAG---]SERVICE_IDENTIFIER.run.app, em que TAG se refere à tag de tráfego para a revisão que você está solicitando, e SERVICE_IDENTIFIER é um identificador estável e exclusivo de um serviço do Cloud Run. Não analise o SERVICE_IDENTIFIER, porque ele não tem um formato fixo, e a lógica para a geração do SERVICE_IDENTIFIER está sujeita a alterações.

Também é possível usar seu próprio domínio personalizado que mapeia para o serviço. Isso fornece automaticamente certificados SSL gerenciados.

O Cloud Run redireciona todas as solicitações HTTP para HTTPS, mas encerra o TLS antes de chegar ao serviço da Web. Se o serviço gerar recursos da Web que se referem a outros recursos da Web com URLs não seguros (http://), sua página pode estar sujeita a avisos ou erros de conteúdo misto. Use o protocolo https para todos os URIs da Web de referência ou contas para diretivas de proxy na solicitação HTTP, como o cabeçalho HTTP X-Forwarded-Proto.

HTTP e HTTP/2

Por padrão, o Cloud Run faz downgrade das solicitações HTTP/2 para HTTP/1 quando essas solicitações são enviadas ao contêiner. Se você quiser definir explicitamente que o serviço use o HTTP/2 de ponta a ponta, consulte Como usar HTTP/2.

Como criar serviços privados

A criação de um serviço particular no Cloud Run exige que você limite o acesso a ele usando a permissão do invocador do IAM.

Também é possível limitar o acesso a um serviço usando um mecanismo de autorização e autenticação no nível do aplicativo, por exemplo, usando a Identity Platform.

Como testar serviços particulares

A maneira mais fácil de testar serviços particulares é usar o proxy do Cloud Run na Google Cloud CLI. Isso redireciona o serviço particular para http://localhost:8080 (ou para a porta especificada com --port), fornecendo o token da conta ativa ou outro token especificado. Isso permite que você use um navegador da Web ou uma ferramenta como curl. Essa é a maneira recomendada de testar de forma particular um site ou uma API no seu navegador.

É possível fazer proxy de um serviço localmente usando o seguinte comando:

gcloud run services proxy SERVICE --project PROJECT-ID

Também é possível testar serviços particulares sem o proxy usando uma ferramenta como curl, transmitindo um token de autenticação no cabeçalho Authorization:

curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL

Serviço a serviço particular

Um serviço do Cloud Run pode chamar outro serviço do Cloud Run com a autenticação de serviço a serviço.

Exemplo de código que invoca um serviço particular

Para exemplos de código que mostram como receber um ID de token e fazer uma solicitação HTTP para um serviço particular, consulte o tópico Como autenticar entre serviços.

Como usar um middleware para aprimorar seu serviço

Os proxies HTTPS podem descarregar funcionalidades comuns de um serviço HTTP, como armazenamento em cache, validação de solicitação ou autorização. Para microsserviços, muitos proxies HTTP são parte de uma solução de gateway de API ou de uma malha de serviço, como Istio.

Os produtos do Google Cloud que é possível usar para aprimorar seu serviço do Cloud Run incluem: