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 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
Acesse o Knative serving no Google Cloud console:
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.
Em Configurações avançadas, clique em Contêiner.
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.
Clique em Avançar para acessar a próxima seção.
Na seção Configurar como este serviço é acionado, selecione qual conectividade você quer usar para invocar o serviço.
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 updatecom 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. Especifique0para 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 deploycom 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. Especifique0para 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.
Faça o download da configuração do serviço em um arquivo chamado
service.yamlno 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.
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.
Substitua o serviço pela nova configuração usando o seguinte comando:
gcloud run services replace service.yaml