Saiba como definir o tempo dentro do qual uma resposta a um pedido tem de ser devolvida pelos seus serviços de publicação do Knative. Se não for devolvida uma resposta no prazo especificado, o pedido termina e é devolvido o erro 504
.
Limites de tempo limite
O limite de tempo limite máximo difere consoante a versão do seu cluster do GKE.
Versão do GKE | Limite predefinido | Limite máximo de tempo limite |
---|---|---|
0.16.0-gke.1 e posterior | 300 segundos | 24 horas |
0.15.0-gke.3 e anteriores | 300 segundos | 900 segundos |
Além de alterar o limite de tempo da solicitação de publicação do Knative, deve verificar a sua framework de linguagem para ver se tem a sua própria definição de limite de tempo da solicitação que também tem de atualizar.
Definir e atualizar o limite de tempo do pedido
Qualquer alteração de configuração leva à criação de uma nova revisão. As revisões subsequentes também vão receber automaticamente esta definição de configuração, a menos que faça atualizações explícitas para a alterar.
Pode definir o limite de tempo da solicitação através da Google Cloud consola, da CLI Google Cloud ou de um ficheiro YAML quando implementa um novo serviço ou atualiza um serviço existente e implementa uma revisão:
Consola
Aceda ao Knative serving na Google Cloud consola:
Clique em Criar serviço se estiver a configurar um novo serviço para o qual está a implementar. Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.
Em Definições avançadas, clique em Contentor.
No campo Tempo limite do pedido, introduza o valor de tempo limite que quer usar. O valor especificado tem de ser inferior ao limite de tempo limite para a versão do GKE do cluster.
Clique em Seguinte para continuar para a secção seguinte.
Na secção Configure como este serviço é acionado, selecione a conetividade que quer usar para invocar o serviço.
Clique em Criar para implementar a imagem no Knative Serving e aguarde que a implementação termine.
Linha de comandos
Para serviços existentes, defina o limite de tempo do pedido executando o comando
gcloud run services update
com o parâmetro--timeout
:gcloud run services update SERVICE --timeout TIMEOUT
Substituição:
- SERVICE com o nome do seu serviço.
- TIMEOUT com o tempo pretendido, usando um valor inteiro em segundos ou um valor de duração absoluta, por exemplo,
1m20s
, que corresponde a 1 minuto e 20 segundos. O valor que especificar tem de ser inferior ao limite de tempo limite para a versão do GKE do cluster. Especifique0
para definir o limite de tempo para o valor predefinido.
Para novos serviços, defina o limite de tempo do pedido executando o comando
gcloud run deploy
com o parâmetro--timeout
:gcloud run deploy SERVICE --image=IMAGE_URL --timeout TIMEOUT
Substituição:
- SERVICE com o nome do seu serviço.
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
gcr.io/cloudrun/hello
. - TIMEOUT com o tempo pretendido, usando um valor inteiro em segundos ou um valor de duração absoluta, por exemplo,
1m20s
, que corresponde a 1 minuto e 20 segundos. O valor que especificar tem de ser inferior ao limite de tempo limite para a versão do GKE do cluster. Especifique0
para definir o limite de tempo para o valor predefinido.
YAML
Pode transferir a configuração de um serviço existente para um ficheiro YAML com o comando gcloud run services describe
usando a flag --format=export
.
Em seguida, pode modificar esse ficheiro YAML e implementar essas alterações com o comando gcloud run services replace
.
Tem de garantir que modifica apenas os atributos especificados.
Transfira a configuração do seu serviço para um ficheiro denominado
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 de fornecimento do Knative.
No ficheiro local, atualize o atributo
timeoutSeconds
:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE timeoutSeconds: TIMEOUT
Substituição:
- SERVICE com o nome do seu serviço Knative serving
- IMAGE_URL com uma referência à imagem do contentor, por exemplo,
gcr.io/cloudrun/hello
. - TIMEOUT com o limite de tempo desejado, em segundos.
Substitua o serviço pela respetiva nova configuração através do seguinte comando:
gcloud run services replace service.yaml