Como gerenciar serviços

Nesta página, descrevemos a criação de um serviço e a visualização de informações sobre ele. Os serviços são os principais recursos do Cloud Run. Cada serviço tem um URL exclusivo e permanente que não mudará ao longo do tempo à medida que você implantar novas revisões nele.

O domínio permanente do serviço consiste no nome do serviço e em um hash.

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 ver uma lista dos serviços disponíveis no projeto usando o console do Google Cloud ou a linha de comando gcloud:

Console

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

  1. Acessar o Cloud Run

  2. Examine a lista de serviços exibidos para seu projeto:

    lista de serviços

Linha de comando

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.

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:

  1. Acessar o Cloud Run

  2. Selecione o serviço a ser copiado na lista exibida de serviços do seu projeto:

    lista de serviços

    1. Clique em Copiar.

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

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

YAML

É possível fazer o download e conferir as configurações de serviço usando o comando gcloud run services describe --format export, que produz resultados limpos no formato YAML. Em seguida, modifique os campos descritos abaixo e faça upload do YAML modificado usando o comando gcloud run services replace. Modifique os campos somente conforme documentado.

  1. Para visualizar e fazer o download da configuração:

    gcloud run services describe SERVICE --format export > service.yaml
  2. Faça as alterações de configuração desejadas 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

A seguir, saiba como ver mais detalhes sobre um serviço.

Console

Para ver os detalhes de um serviço, realize as etapas a seguir:

  1. Acesse o Cloud Run

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

Linha de comando

Para ver detalhes sobre um serviço, realize as etapas a seguir:

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 --format yaml

É possível usar --format export para exportar como YAML sem rótulos ou status gerados automaticamente:

gcloud run services describe SERVICE --format export

Também é possível usar a sinalização --format para ver o URL do serviço:

gcloud run services describe SERVICE --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

O Cloud Run não oferece uma maneira direta de fazer um serviço parar de exibir tráfego, mas é possível alcançar um resultado semelhante ao revogar a permissão para invocar o serviço das identidades que o invocam. Se o serviço for "público", remova allUsers do papel Chamador do Cloud Run (roles/run.invoker).

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 Container Registry. Para excluir imagens de contêiner usadas pelas revisões excluídas do Container 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.

Console

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

  1. Acessar 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 exclui todas as revisões do serviço.

Linha de comando

Para excluir um serviço, use o comando:

gcloud run services delete [SERVICE]

[SERVICE] pelo nome 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.