Como definir o tempo limite da solicitação

Saiba como definir o tempo em que uma resposta de uma solicitação precisa ser retornada pelos serviços de fornecimento do Knative. 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 Knative serving, 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.

Defina o tempo limite da solicitação usando o console do Google Cloud, a Google Cloud CLI ou um arquivo YAML ao implantar um novo serviço ou atualizar um serviço atual e implantar uma revisão:

Console

  1. Acesse o Knative serving no console do Google Cloud:

    Acessar o Knative serving

  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.

  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 Avançar para acessar a próxima seção.

  6. Na seção Configurar como este serviço é acionado, selecione qual conectividade você quer usar para invocar o serviço.

  7. Clique em Criar para implantar a imagem no Knative serving e aguarde até que a implantação seja concluída.

Linha de comando

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

    gcloud run 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 run deploy com o parâmetro --timeout:

    gcloud run deploy 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/cloudrun/hello;
    • 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

Faça o download da configuração de um serviço existente para um arquivo YAML com o comando gcloud run services describe usando a sinalização --format=export. Em seguida, modifique o arquivo YAML e implante essas alterações com o comando gcloud run services replace. Modifique apenas os atributos especificados.

  1. Faça o download da configuração do serviço em um arquivo chamado service.yaml no espaço de trabalho local:

    gcloud run services describe SERVICE --format export > service.yaml

    Substitua SERVICE pelo nome do seu serviço do Knative serving.

  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 Knative serving
    • IMAGE_URL por uma referência à imagem de contêiner. Por exemplo, gcr.io/cloudrun/hello.
    • TIMEOUT pelo tempo limite que você quer, em segundos.
  3. Substitua o serviço pela nova configuração usando o seguinte comando:

    gcloud run services replace service.yaml