Como definir o tempo limite da solicitação

Saiba como definir o tempo em que uma resposta para uma solicitação precisa ser retornada pelos serviços do Cloud Run para Anthos no Google Cloud. Se uma resposta não for retornada dentro do tempo especificado, a solicitação será finalizada e o erro 504 será retornado.

Limites de tempo

Esse limite é diferente com base na versão do cluster do GKE.

Versão GKE Limite padrão Limite de tempo máximo
0.16.0-gke.1 e superior 300 segundos 24 horas
0.15.0-gke.3 e anterior 300 segundos 900 segundos

Além de alterar o tempo limite da solicitação do Cloud Run for Anthos, 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.

Você pode definir o tempo limite da solicitação usando o Console do Cloud, a ferramenta de linha de comando gcloud ou um arquivo YAML ao implantar um novo serviço ou atualizar um serviço existente e implantar uma revisão:

Console

  1. Acessar o Cloud Run for Anthos no Google Cloud

  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 uma nova revisão.

  3. Em Configurações avançadas, clique em Contêiner.

    imagem

  4. No campo Tempo limite da solicitação, insira o valor do tempo limite que você quer usar. O valor especificado precisa ser menor que o limite de tempo da versão do GKE do cluster.

  5. Clique em Criar ou Implantar.

Linha de comando

  • Para serviços existentes, defina o tempo limite da solicitação executando o comando gcloud kuberun core services update com o parâmetro --timeout.

    gcloud kuberun core services update SERVICE --timeout TIMEOUT
    

    Substitua:

    • SERVICE pelo nome do serviço;
    • TIMEOUT pelo tempo que você quer, usando um valor inteiro em segundos ou um valor de duração absoluta. Por exemplo, 1m20s, que é 1 minuto e 20 segundos. O valor especificado precisa ser menor que o limite de tempo da versão do GKE do cluster. Especifique 0 para definir o tempo limite como o valor padrão.
  • Para novos serviços, defina o tempo limite da solicitação executando o comando gcloud kuberun core services create com o parâmetro --timeout:

    gcloud kuberun core services create SERVICE --image=IMAGE_URL --timeout TIMEOUT
    

    Substitua:

    • SERVICE pelo nome do serviço;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, gcr.io/myproject/my-image:latest;
    • TIMEOUT pelo tempo que você quer, usando um valor inteiro em segundos ou um valor de duração absoluta. Por exemplo, 1m20s, que é 1 minuto e 20 segundos. O valor especificado precisa ser menor que o limite de tempo da versão do GKE do cluster. Especifique 0 para definir o tempo limite como o valor padrão.

YAML

Para usar um arquivo YAML para modificar a configuração do serviço atual, consiga uma cópia da configuração atual, modifique e salve as alterações em um arquivo local e, em seguida, implante essas alterações no serviço.

  1. Exiba como YAML e copie a configuração do serviço em um arquivo local, por exemplo, service.yaml:

    gcloud kuberun core services describe SERVICE --format yaml

    Substitua SERVICE pelo nome do serviço do Cloud Run for Anthos.

  2. No seu arquivo local, atualize o atributo timeoutSeconds:

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

    Substitua:

    • SERVICE pelo nome do serviço do Cloud Run for Anthos;
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, gcr.io/myproject/my-image:latest;
    • TIMEOUT pelo tempo limite que você quer, em segundos.
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud beta run services replace service.yaml