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 participantes.
No campo Adicionar membros, insira o e-mail da conta de desenvolvedor.
Selecione o papel
Cloud Run Invoker
no menu suspenso Selecionar um papel.Clique em Save.
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'
Como testar seu serviço particular
Como 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 o seguinte comando:
gcloud beta run services proxy SERVICE --project PROJECT-ID
Como usar o 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 identidade 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.
Conforme mostrado no exemplo, para receber um token de identidade válido para a identidade
atualmente conectada em gcloud
, use
gcloud auth print-identity-token
.
Observe que os tokens de ID gerados com o comando gcloud
precisam ser usados apenas em uma configuração de desenvolvimento, já que não é preciso especificar um "público". A exigência de audience
reduz o risco de ataques de repetição. Por outro lado, audience
é necessário ao gerar tokens de contas de serviço.