Além de ações administrativas, como a criação, a atualização e a exclusão de serviços, os desenvolvedores geralmente querem testar os serviços de maneira particular antes de liberá-los. Essa opção é para serviços do Cloud Run, e não jobs do Cloud Run.
Antes de começar
Conceda permissões para acessar os serviços em que você está se autenticando. Você precisa conceder o papel de Chamador do Cloud Run ao desenvolvedor ou grupo de desenvolvedores:
IU do Console
Acesse o Console do Google Cloud:
Selecione o serviço, mas não clique nele.
Clique na guia Permissões no painel à direita. Talvez seja necessário clicar em Mostrar painel de informações no canto superior direito.
Clique em Adicionar principal.
No campo Novos principais, insira o e-mail da conta de desenvolvedor.
Selecione o papel
Cloud Run Invoker
no menu suspenso Selecionar um papel.Clique em Salvar.
gcloud
Use o comando gcloud run services add-iam-policy-binding
:
gcloud run services add-iam-policy-binding SERVICE \ --member='USER:EMAIL' \ --role='roles/run.invoker'
em que
- SERVICE é o nome do serviço;
- USER é o valor
user
ougroup
, dependendo de você estar autorizando um único desenvolvedor ou um grupo; EMAIL é a conta de e-mail.
Exemplo:
gcloud run services add-iam-policy-binding myservice \ --member='user:test-user@gmail.com' \ --role='roles/run.invoker'
Testar seu serviço particular
Use o proxy do Cloud Run ou o curl
para testar seu serviço particular.
Usar o proxy do Cloud Run na CLI do Google Cloud
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 a linha de comando a seguir em um ambiente Linus, macOS, WSL (preferencial) ou cygwin:
gcloud run services proxy SERVICE --project PROJECT-ID
Usar curl
Como alternativa, é possível testar serviços particulares sem o proxy usando uma ferramenta
como curl
e transmitindo um token de autenticação no cabeçalho Authorization
:
curl -H "Authorization: Bearer $(gcloud auth print-identity-token)" SERVICE_URL
Para que o comando curl
funcione, você precisa transmitir um token de ID válido
para um usuário com a permissão run.routes.invoke
, como o
Administrador do Cloud Run ou o Chamador do Cloud Run. Veja Papéis do IAM do Cloud Run para ver a lista completa de papéis e permissões associadas.
Para receber um token de ID válido para a identidade conectada à gcloud CLI,
use o comando gcloud auth print-identity-token
. É possível usar tokens criados pela gcloud CLI para invocar solicitações HTTP em qualquer projeto, desde que
sua conta tenha a permissão run.routes.invoke
no serviço.
Para fins de desenvolvimento, use tokens de ID gerados pela gcloud CLI. No entanto, esses tokens não têm uma reivindicação de público, o que os torna suscetíveis a ataques de repetição. Em ambientes de produção, use tokens de ID emitidos para uma conta de serviço com o público-alvo apropriado especificado. Essa abordagem melhora a segurança porque restringe o uso do token apenas ao serviço pretendido. Para contas que não são do Google, use a federação de identidade da força de trabalho para invocar seu serviço do Cloud Run. Assim, você não precisa fazer o download de uma chave da conta de serviço.
Recomendamos que você aloque o conjunto mínimo de permissões necessárias para desenvolver e usar seus serviços. Certifique-se de que as políticas do IAM nos seus serviços estejam limitadas ao número mínimo de usuários e contas de serviço.