Como definir o tempo limite da solicitação (serviços)

Mantenha tudo organizado com as coleções Salve e categorize o conteúdo com base nas suas preferências.

Para os serviços do Cloud Run, a configuração de tempo limite da solicitação especifica o tempo em que uma resposta precisa ser retornada pelos serviços implantados no Cloud Run. Se uma resposta não for retornada dentro do tempo especificado, a solicitação será finalizada e o erro 504 será retornado.

O tempo limite é definido por padrão como cinco minutos e pode ser estendido para até 60 minutos.

É possível alterar essa configuração ao implantar uma imagem de contêiner ou atualizando a configuração do serviço.

Além de alterar o tempo limite da solicitação do Cloud Run, verifique o framework da linguagem para ver se ele tem a própria configuração de tempo limite de solicitação que você também precisa atualizar.

Como configurar e atualizar o tempo limite da solicitação

Qualquer mudança na configuração leva à criação de uma nova revisão. As próximas revisões também recebem automaticamente essa configuração, a menos que você faça atualizações explícitas para alterá-la.

É possível definir o tempo limite da solicitação usando o console do Google Cloud, a linha de comando gcloud ou um arquivo YAML ao criar um novo serviço ou implantar uma nova revisão.

Console

  1. Acessar o Cloud Run

  2. Clique em Criar serviço se estiver configurando um novo serviço em que fará uma implantação. Se você estiver configurando um serviço atual, clique nele e em Editar e implantar nova revisão.

  3. Se você estiver configurando um novo serviço, preencha a página inicial de configurações de serviço conforme desejado e clique em Contêiner, conexões, segurança para expandir a página de configuração do serviço.

  4. Clique na guia Contêiner.

    imagem

  5. No campo Tempo limite da solicitação, insira o valor de tempo limite que você quer usar em segundos. Use valores que vão de 1 a 3600 segundos ou de 1 a 60 minutos.

  6. Clique em Criar ou Implantar.

Linha de comando

É possível atualizar o tempo limite da solicitação para uma determinada revisão a qualquer momento, usando o comando a seguir:

gcloud run services update [SERVICE] --timeout=[TIMEOUT]

Substitua:

  • [SERVICE] pelo nome do serviço.
  • [TIMEOUT] pelo tempo que você quer, usando um valor inteiro ou um valor de duração absoluta. Por exemplo, 1m20s, que é 1 minuto e 20 segundos. Se você usar um valor inteiro, a unidade será considerada como segundos. O valor especificado precisa ser menor que 15 minutos.

Também é possível definir o tempo limite da solicitação durante a implantação usando o comando a seguir:

gcloud run deploy --image IMAGE_URL --timeout=[TIMEOUT]

Substitua:

  • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest;
  • [TIMEOUT] pelo tempo que você quer, usando um valor inteiro ou um valor de duração. Por exemplo, 1m20s, que é de 1 minuto e 20 segundos. Se você usar um valor inteiro, a unidade será considerada como segundos. O valor especificado precisa ser menor que 15 minutos.

YAML

É possível fazer o download e ver a configuração do serviço atual 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. Atualize o atributo timeoutSeconds:

    apiVersion: serving.knative.dev/v1
    kind: Service
    metadata:
      name: SERVICE
    spec:
      template:
        metadata:
          name: REVISION
        spec:
          containers:
          - image: IMAGE
          timeoutSeconds: VALUE

    Substitua:

    • SERVICE pelo nome do serviço do Cloud Run;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest;
    • VALUE pelo tempo limite que você quer, em segundos.
    • REVISION por um novo nome de revisão ou excluí-lo (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. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud run services replace service.yaml

Terraform

Adicione o seguinte a um recurso google_cloud_run_service em template.spec na configuração do Terraform. Substitua 300 pelo tempo limite da solicitação desejado para o serviço (em segundos).

# Timeout
# https://cloud.google.com/run/docs/configuring/request-timeout
timeout_seconds = 300

Para aplicar a configuração do Terraform a um projeto do Google Cloud, siga estas etapas:

  1. Inicie o Cloud Shell.
  2. Defina o projeto do Google Cloud em que a configuração do Terraform será aplicada:
    export GOOGLE_CLOUD_PROJECT=PROJECT_ID
    
  3. Crie um diretório e abra um novo arquivo. O nome do arquivo precisa ter a extensão .tf, por exemplo: main.tf:
    mkdir DIRECTORY && cd DIRECTORY && nano main.tf
    
  4. Copie a amostra para main.tf.
  5. Revise e modifique os parâmetros de amostra para aplicar ao seu ambiente.
  6. Salve as mudanças pressionando Ctrl-x e depois y.
  7. Inicialize o Terraform:
    terraform init
  8. Revise a configuração e verifique se os recursos que o Terraform vai criar ou atualizar correspondem às suas expectativas:
    terraform plan

    Faça as correções necessárias na configuração.

  9. Para aplicar a configuração do Terraform, execute o comando a seguir e digite yes no prompt:
    terraform apply

    Aguarde até que o Terraform exiba a mensagem "Apply complete!".

  10. Abra seu projeto do Google Cloud para ver os resultados. No console do Google Cloud, navegue até seus recursos na IU para verificar se foram criados ou atualizados pelo Terraform.

Ver configurações de tempo limite da solicitação

Para ver as configurações atuais de tempo limite da solicitação do serviço do Cloud Run, faça o seguinte:

Console

  1. Acesse o Cloud Run

  2. Clique no serviço de seu interesse para abrir a página Detalhes do serviço.

  3. Clique na guia Revisões.

  4. No painel de detalhes à direita, a configuração de tempo limite da solicitação está listada na guia Contêiner.

Linha de comando

  1. Use o comando a seguir:

    gcloud run services describe SERVICE
  2. Localize a configuração de tempo limite da solicitação na configuração retornada.