O Cloud Run permite implantar e executar aplicativos conteinerizados com escalonamento automático e endpoints permanentes. Em um projeto, é possível criar, visualizar, copiar, desativar e excluir serviços para manter suas cargas de trabalho.
Cada serviço recebe um URL exclusivo e permanente que é mantido em novas revisões. As funções implantadas
no Cloud Run também são tratadas como serviços e recebem um
endereço que contém o
nome do serviço e um hash.
Funções exigidas
Para ter as permissões necessárias para gerenciar os serviços e as revisões do Cloud Run,
peça ao administrador para conceder a você o
papel do IAM de Desenvolvedor do Cloud Run (roles/run.developer) no serviço do Cloud Run.
Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o serviço do Cloud Run interage com as APIs doGoogle Cloud , como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.
criar um serviço;
Você cria um novo serviço por meio da implantação de uma imagem de contêiner para ele pela primeira vez. A implantação de um novo serviço tem mais instruções.
Como ver a lista de serviços no projeto
É possível visualizar uma lista dos serviços disponíveis no projeto usando o console do Google Cloud ou a Google Cloud CLI:
Console
Para ver a lista de serviços, realize as etapas a seguir:
No console do Google Cloud , acesse a página Serviços do Cloud Run:
Examine a lista de serviços exibidos para seu projeto.
gcloud
Para listar os serviços no projeto, use este código:
gcloud run services list
Observe que cada serviço tem um URL associado.
É possível filtrar essa lista por propriedades da definição de serviço, como um rótulo atribuído.
Cloud Code
Para ver a lista de serviços com o Cloud Code, leia os guias do explorador do Cloud Run para IntelliJ e Visual Studio Code.
Bibliotecas de cliente
Para conferir a lista de serviços no código:
API REST
Para visualizar a lista de serviços no projeto, envie uma solicitação HTTP GET ao endpoint service da API Cloud Run Admin.
Por exemplo, usando curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X GET \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services
Substitua:
- ACCESS_TOKEN por um token de acesso válido para uma conta com as permissões do IAM para visualizar serviços.
Por exemplo, se você fez login no gcloud, é possível recuperar um
token de acesso usando
gcloud auth print-access-token. Em uma instância de contêiner do Cloud Run, é possível recuperar um token de acesso por meio do servidor de metadados da instância de contêiner. - REGION pela região do Google Cloud do serviço.
- PROJECT-ID pelo ID do projeto do Google Cloud .
Como ver a lista de funções no projeto
É possível conferir uma lista das funções disponíveis no projeto usando o console doGoogle Cloud :
Console
Para filtrar funções na lista de serviços:
No console do Google Cloud , acesse a página Serviços do Cloud Run:
Selecione Filtrar serviços > Tipo de implantação > Função.
Se você já tiver implantado sua função usando a API Cloud Functions v2, a coluna Implantado por vai mostrar Cloud Functions.
Copiar um serviço
É possível fazer uma cópia de um serviço atual usando o console do Google Cloud ou o YAML. Você pode alterar o que quiser na cópia, incluindo o nome e a região.
Console
Para copiar um serviço:
No console do Google Cloud , acesse a página Serviços do Cloud Run:
Marque a caixa de seleção ao lado do serviço que você quer copiar na lista exibida de serviços do seu projeto.
Clique em Copiar.
Na página de cópia do serviço, defina ou altere os valores que você quer alterar, como região etc. Se você mantiver a mesma região, forneça um novo nome para o serviço.
Clique em Criar para fazer uma cópia e implantá-la usando o novo nome de serviço.
YAML
Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:
gcloud run services describe SERVICE --format export > service.yaml
Faça as seguintes alterações de configuração no serviço.
apiVersion: serving.knative.dev/v1 kind: Service metadata: annotations: ... name: SERVICE ... spec: template: metadata: annotations: ... name: REVISION- Se você não for implantar a cópia em uma região diferente, substitua SERVICE pelo nome que você quer usar para a cópia. Se você for implantar a cópia em uma região diferente, poderá usar o nome antigo.
- Substitua
REVISIONpor um novo nome de revisão ou exclua-o (se houver). Se você fornecer um novo nome de revisão, ele precisará atender aos seguintes critérios:- Começa com
SERVICE- - Contém apenas letras minúsculas, números e
- - Não termina com um
- - Não excede 63 caracteres
- Começa com
Copie o serviço usando o seguinte comando:
gcloud run services replace service.yaml
Use a sinalização
--regionpara implantar a cópia em uma região diferente.
Acessar mais detalhes sobre um serviço
É possível ver mais detalhes sobre um serviço usando o console do Google Cloud , a Google Cloud CLI, o arquivo YAML ou a API REST:
Console
Para ver os detalhes de um serviço, realize as etapas a seguir:
No console do Google Cloud , acesse a página Serviços do Cloud Run:
Clique no serviço na lista exibida para abrir a visualização de detalhes do serviço.
gcloud
Para ver detalhes sobre um serviço, realize as etapas a seguir:
gcloud run services describe SERVICE
É possível usar a sinalização --format para formatar a saída. Por exemplo, como YAML:
gcloud run services describe SERVICE --region REGION --format yaml
Substitua:
- SERVICE pelo nome do serviço;
- REGION pela região do Google Cloud do serviço.
É possível usar --format export para exportar como YAML sem rótulos
ou status gerados automaticamente:
gcloud run services describe SERVICE --region REGION --format export
Também é possível usar a sinalização --format para
ver o URL do serviço:
gcloud run services describe SERVICE --region REGION --format='value(status.url)'
Cloud Code
Para ver os detalhes de um serviço com o Cloud Code, leia os guias do explorador do Cloud Run para IntelliJ e Visual Studio Code.
Para mais detalhes sobre revisões de serviço, consulte Como gerenciar revisões.
Bibliotecas de cliente
Para conferir detalhes sobre um serviço usando o código:
API REST
Para visualizar detalhes sobre um serviço, envie uma solicitação HTTP GET ao endpoint service da API Cloud Run Admin.
Por exemplo, usando curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X GET \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME
Substitua:
- ACCESS_TOKEN por um token de acesso válido para uma conta com as permissões do IAM para visualizar detalhes do serviço.
Por exemplo, se você fez login no gcloud, é possível recuperar um
token de acesso usando
gcloud auth print-access-token. Em uma instância de contêiner do Cloud Run, é possível recuperar um token de acesso por meio do servidor de metadados da instância de contêiner. - SERVICE-NAME pelo nome do serviço;
- REGION pela região do Google Cloud do serviço.
- PROJECT-ID pelo ID do projeto do Google Cloud .
Desativar um serviço existente
Para receber as permissões necessárias para desativar um serviço e revisão do Cloud Run, peça ao administrador para conceder a você o papel do IAM de Administrador do Cloud Run (roles/run.admin) no projeto.
Quando você desativa um serviço, todas as solicitações em processamento são concluídas.
No entanto, todas as outras solicitações para o URL do serviço vão falhar com um erro Service unavailable ou
Service disabled.
As solicitações para revisões de serviço que estão ativas apenas devido a tags de tráfego não são afetadas porque essas revisões não são desativadas.
Para desativar um serviço, defina o escalonamento como zero. É possível desativar um serviço usando o console do Google Cloud , a Google Cloud CLI, o arquivo YAML ou a API:
Console
No console do Google Cloud , acesse a página Serviços do Cloud Run:
Clique no serviço que você quer desativar para exibir o painel de detalhes e, em seguida, clique na guia Escalonamento.
Selecione Escalonamento manual.
Insira o valor
0(zero) no campo Número de instâncias.Clique em Ver diff e implantar e em Implantar mudanças.
gcloud
Para desativar um serviço, use o seguinte comando para definir o escalonamento como zero:
gcloud run services update SERVICE --scaling=0
SERVICE pelo nome do serviço;
YAML
Faça o download da configuração YAML do serviço:
gcloud run services describe SERVICE --format export > service.yaml
Defina o atributo
manualInstanceCountcomo zero (0):apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE annotations: run.googleapis.com/scalingMode: manual run.googleapis.com/manualInstanceCount: `0`
Substitua SERVICE pelo nome do serviço do Cloud Run.
Crie ou atualize o serviço usando o seguinte comando:
gcloud run services replace service.yaml
API REST
Para desativar um serviço, envie uma solicitação HTTP PATCH ao endpoint service da API Cloud Run Admin.
Por exemplo, usando curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X PATCH \ -d '{"scaling":{"manualInstanceCount":0 }}' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE?update_mask=scaling.manualInstanceCount
Substitua:
- ACCESS_TOKEN: um token de acesso válido para uma conta com as permissões do IAM para atualizar um serviço.
Por exemplo, se você fez login em
gcloud, é possível recuperar um token de acesso usandogcloud auth print-access-token. Em uma instância de contêiner do Cloud Run, é possível recuperar um token de acesso por meio do servidor de metadados da instância de contêiner. - SERVICE: o nome do serviço.
- REGION: a região do Google Cloud em que o serviço está implantado.
- PROJECT_ID: o ID do projeto do Google Cloud .
Terraform
Para desativar um serviço, defina o atributo manual_instance_count como zero (0):
resource "google_cloud_run_v2_service" "default" {
name = "SERVICE_NAME"
location = "REGION"
template {
containers {
image = "IMAGE_URL"
}
}
scaling {
scaling_mode = "MANUAL"
manual_instance_count = "0"
}
}
Substitua:
- SERVICE_NAME: o nome do seu serviço do Cloud Run.
- REGION: a região do Google Cloud . Por exemplo,
europe-west1. IMAGE_URL: uma referência à imagem do contêiner, por exemplo,us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
Excluir serviços
As considerações a seguir se aplicam à exclusão de um serviço:
- A exclusão de um serviço exclui todos os recursos relacionados a ele, incluindo todas as revisões, sem importar se estão ou não processando tráfego.
- A exclusão de um serviço não remove automaticamente as imagens de contêiner do Artifact Registry. Para excluir imagens de contêiner usadas pelas revisões excluídas do Artifact Registry, consulte Como excluir imagens.
- A exclusão de um serviço com um ou mais acionadores do Eventarc não exclui automaticamente esses acionadores. Para excluí-los, consulte Gerenciar acionadores.
- Após a exclusão, o serviço permanece visível no console do Google Cloud e na interface de linha de comando até que a exclusão seja totalmente concluída. No entanto, não é possível atualizar o serviço.
- A exclusão de um serviço é permanente: não há como desfazer ou restaurar. No entanto, se após a exclusão de um serviço você implantar um novo com o mesmo nome na mesma região, ele terá o mesmo URL do endpoint.
- Quando você exclui uma função do Cloud Run, ela para de aceitar novas solicitações. No entanto, o Cloud Run não encerra imediatamente as instâncias em execução. Em vez disso, a função é executada até a conclusão da tarefa dentro do tempo limite configurado. Isso pode fazer com que a função apareça ativa nos registros por um curto período após a exclusão.
É possível excluir um serviço ou uma função usando o console do Google Cloud , a Google Cloud CLI, o arquivo YAML ou a API REST:
Console
Para excluir um serviço, realize as etapas a seguir:
No console do Google Cloud , acesse a página Serviços do Cloud Run:
Localize o serviço que você quer excluir na lista de serviços e clique na caixa de seleção para marcá-lo.
Clique em Excluir. Isso excluirá todas as revisões do serviço.
gcloud
Para excluir um serviço, use o comando:
gcloud run services delete SERVICE --region REGION
Substituir
- SERVICE pelo nome do serviço;
- REGION pela região do Google Cloud do serviço.
Bibliotecas de cliente
Para excluir um serviço do código:
API REST
Para excluir um serviço, envie uma solicitação HTTP DELETE ao endpoint service da API Cloud Run Admin.
Por exemplo, usando curl:
curl -H "Content-Type: application/json" \ -H "Authorization: Bearer ACCESS_TOKEN" \ -X DELETE \ -d '' \ https://run.googleapis.com/v2/projects/PROJECT_ID/locations/REGION/services/SERVICE-NAME
Substitua:
- ACCESS_TOKEN por um token de acesso válido para uma conta com as permissões do IAM para excluir um serviço.
Por exemplo, se você fez login no gcloud, é possível recuperar um
token de acesso usando
gcloud auth print-access-token. Em uma instância de contêiner do Cloud Run, é possível recuperar um token de acesso por meio do servidor de metadados da instância de contêiner. - SERVICE-NAME pelo nome do serviço;
- REGION pela região do Google Cloud do serviço.
- PROJECT-ID pelo ID do projeto do Google Cloud .