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
Acesse o Knative serving no console do Google Cloud:
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 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. Especifique0
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. Especifique0
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.
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.
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