Gerenciar serviços do Cloud Run

Nesta página, descrevemos a criação de um serviço e a visualização de informações sobre ele.

Cada serviço tem um URL run.app exclusivo e permanente que não muda ao longo do tempo à medida que você implanta novas revisões nele. As funções implantadas no Cloud Run também são tratadas como um serviço e recebem um endereço run.app. O domínio permanente do serviço consiste no nome do serviço e em um hash.

Funções exigidas

Se quiser 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 Google Cloud APIs, 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 Google Cloud console ou a Google Cloud CLI:

Console

Para ver a lista de serviços, realize as etapas a seguir:

  1. No Google Cloud console, acesse a página Serviços do Cloud Run:

    Acesse o Cloud Run

  2. 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 Google Cloud região do serviço.
  • PROJECT-ID pelo Google Cloud ID do projeto.

Como ver a lista de funções no projeto

É possível conferir uma lista das funções disponíveis no projeto usando o Google Cloud console:

Console

Para filtrar funções na lista de serviços:

  1. No Google Cloud console, acesse a página Serviços do Cloud Run:

    Acesse o Cloud Run

  2. 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 Google Cloud console 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:

  1. No Google Cloud console, acesse a página Serviços do Cloud Run:

    Acesse o Cloud Run

  2. Marque a caixa de seleção ao lado do serviço que você quer copiar na lista exibida de serviços do seu projeto.

  3. Clique em Copiar.

  4. 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.

  5. Clique em Criar para fazer uma cópia e implantá-la usando o novo nome de serviço.

YAML

  1. 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
  2. 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 REVISION por 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
  3. Copie o serviço usando o seguinte comando:

    gcloud run services replace service.yaml

    Use a sinalização --region para implantar a cópia em uma região diferente.

Acessar mais detalhes sobre um serviço

É possível conferir mais detalhes sobre um serviço usando o Google Cloud console, 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:

  1. No Google Cloud console, acesse a página Serviços do Cloud Run:

    Acesse o Cloud Run

  2. Clique no serviço na lista exibida para abrir a visualização de detalhes do serviço.

gcloud

Para conferir detalhes sobre um serviço usando o código:

gcloud run services describe SERVICE
Substitua SERVICE pelo nome do serviço.

É 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 Google Cloud região 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 --formatsinalização 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 Google Cloud região do serviço.
  • PROJECT-ID pelo Google Cloud ID do projeto.

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 Administrador do Cloud Run (roles/run.admin)

Quando você desativa um serviço, todas as solicitações em processamento podem ser concluídas. No entanto, 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 estão desativadas.

Para desativar um serviço, defina o escalonamento como zero. É possível desativar um serviço usando o Google Cloud console, a Google Cloud CLI, o arquivo YAML ou a API:

Console

  1. No Google Cloud console, acesse a página Serviços do Cloud Run:

    Acesse o Cloud Run

  2. Clique no serviço que você quer desativar para mostrar o painel de detalhes e clique na guia Escalonamento.

  3. Selecione Escalonamento manual.

  4. Insira o valor 0 (zero) no campo Número de instâncias.

  5. Clique em Ver diff e implantar e em Implantar alterações.

gcloud

Para desativar um serviço, use o comando a seguir para definir o escalonamento como zero:

gcloud run services update SERVICE --scaling=0

SERVICEpelo nome do serviço;

YAML

  1. Faça o download da configuração YAML do serviço:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Defina o atributo manualInstanceCount como 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.

  3. 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 que tem 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 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: o nome do serviço.
  • REGION: a Google Cloud região em que o serviço está implantado.
  • PROJECT_ID: o Google Cloud ID do projeto.

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 serviço do Cloud Run.
  • REGION: a Google Cloud região. Por exemplo, europe-west1.
  • IMAGE_URL: uma referência à imagem de contêiner, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisa ter sido criado. O URL segue o formato de LOCATION-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 Google Cloud console 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 breve período após a exclusão.

É possível excluir um serviço ou uma função usando o Google Cloud console, a Google Cloud CLI, o arquivo YAML ou a API REST:

Console

Para excluir um serviço, realize as etapas a seguir:

  1. No Google Cloud console, acesse a página Serviços do Cloud Run:

    Acesse o Cloud Run

  2. Localize o serviço que você quer excluir na lista de serviços e clique na caixa de seleção para marcá-lo.

  3. 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 Google Cloud região 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 Google Cloud região do serviço.
  • PROJECT-ID pelo Google Cloud ID do projeto.