As configurações de tempo limite de solicitação do Cloud Run permitem definir o tempo máximo que um serviço tem para retornar uma resposta. Se o serviço não responder dentro desse limite, o Cloud Run vai fechar a conexão de rede e retornar um erro HTTP 504.
Fechar a conexão não encerra a instância do contêiner. O contêiner pode continuar processando a solicitação cancelada, o que pode interferir no processamento de outras solicitações. Para evitar tempos limite, defina um tempo limite maior que o tempo de execução esperado ou acompanhe o tempo de execução restante para realizar a limpeza e retornar mais cedo.
Período de tempo limite para serviços
O tempo limite é definido por padrão como 5 minutos (300 segundos) e pode ser estendido para até 60 minutos (3.600 segundos).
Ao acionar o serviço usando eventos do Eventarc, assinaturas por push do Pub/Sub ou Cloud Scheduler, o tempo limite desses serviços é aplicado.
É possível alterar essa configuração ao implantar uma imagem de contêiner ou atualizando a configuração do serviço.
Além de alterar o tempo limite da solicitação do Cloud Run, 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. Alguns clientes do serviço do Cloud Run também podem impor um tempo limite mais restritivo.
Funções exigidas
Para receber as permissões necessárias para configurar e implantar os serviços do Cloud Run, peça ao administrador para conceder a você os seguintes papéis do IAM:
- Desenvolvedor do Cloud Run (
roles/run.developer) no serviço Cloud Run - Usuário da conta de serviço (
roles/iam.serviceAccountUser) na conta de serviço
Se você estiver implantando um serviço ou uma função do código-fonte, também precisará ter outros papéis concedidos no projeto e na conta de serviço do Cloud Build.
Para uma lista de papéis e permissões do IAM associados ao Cloud Run, consulte Papéis do IAM do Cloud Run e Permissões do IAM do Cloud Run. Se o serviço do Cloud Run interage com as APIs doGoogle Cloud , como as bibliotecas de cliente do Cloud, consulte o guia de configuração de identidade de serviço. Para mais informações sobre como conceder papéis, consulte permissões de implantação e gerenciar acesso.
Definir 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.
É possível definir o tempo limite da solicitação usando o Google Cloud console, a linha de comando da CLI gcloud ou um arquivo YAML ao criar um novo serviço ou implantar uma nova revisão.
Console
No console do Google Cloud , acesse o Cloud Run:
Selecione Serviços no menu de navegação do Cloud Run:
Se você estiver configurando um novo serviço, clique em Implantar contêiner e preencha a página de configurações de serviço inicial. Em seguida, clique em Contêineres, rede, segurança para expandir a página de configurações de serviço.
Se você estiver configurando um serviço atual, clique nele e na guia Escalonamento.
Em Solicitações, no campo Tempo limite da solicitação, insira o valor do tempo limite que você quer usar em segundos. Use valores que vão de
1a3600segundos.Clique em Criar para um novo serviço. Clique em Ver diff e reimplantar e em Implantar mudanças para um serviço atual.
gcloud
É possível atualizar o tempo limite da solicitação para uma determinada revisão a qualquer momento, usando o comando a seguir:
gcloud run services update SERVICE --timeout=TIMEOUT
Substitua:
- SERVICE: o nome do serviço.
TIMEOUT: o tempo em que uma resposta precisa ser retornada, usando um valor inteiro ou um valor de duração absoluta. Por exemplo,
1m20s, que é de 1 minuto e 20 segundos. Se você usar um valor inteiro, a unidade será considerada como segundos. O valor especificado precisa ser menor que 15 minutos.
Também é possível definir o tempo limite da solicitação durante a implantação usando o comando a seguir:
gcloud run deploy --image IMAGE_URL --timeout=TIMEOUT
Substitua:
IMAGE_URL: uma referência à imagem do contêiner, por exemplo,us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- TIMEOUT: o tempo em que uma resposta precisa ser
retornada, usando um valor inteiro ou de duração. Por exemplo,
1m20s, que é de 1 minuto e 20 segundos. Se você usar um valor inteiro, a unidade será considerada em segundos. O valor especificado precisa ser menor que 60 minutos.
YAML
Se você estiver criando um novo serviço, pule esta etapa. Se você estiver atualizando um serviço existente, faça o download da configuração YAML correspondente:
gcloud run services describe SERVICE --format export > service.yaml
Atualize o atributo
timeoutSeconds:apiVersion: serving.knative.dev/v1 kind: Service metadata: name: SERVICE spec: template: spec: containers: - image: IMAGE timeoutSeconds: VALUE
Substitua:
- SERVICE: o nome do seu serviço do Cloud Run.
IMAGE_URL: uma referência à imagem do contêiner, por exemplo,us-docker.pkg.dev/cloudrun/container/hello:latest. Se você usa o Artifact Registry, o repositório REPO_NAME já precisará ter sido criado. O URL segue o formato deLOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG.- VALUE: o tempo limite escolhido, em segundos.
Crie ou atualize o serviço usando o seguinte comando:
gcloud run services replace service.yaml
O comando
gcloud run services replaceusa o arquivoservice.yamlpor padrão, se ele estiver presente.
Terraform
Para saber como aplicar ou remover uma configuração do Terraform, consulte Comandos básicos do Terraform.
Adicione o seguinte a um recursogoogle_cloud_run_v2_service
na configuração do Terraform:Substitua 300s pelo tempo limite de solicitação escolhido para o serviço.
Ver configurações de tempo limite da solicitação
Para ver as configurações atuais de tempo limite da solicitação do serviço do Cloud Run, faça o seguinte:
Console
No console do Google Cloud , acesse a página Serviços do Cloud Run:
Clique no serviço de seu interesse para abrir a página Detalhes do serviço.
Clique na guia Escalonamento para ver as configurações.
gcloud
Use o comando a seguir:
gcloud run services describe SERVICE
Localize a configuração de tempo limite da solicitação na configuração retornada.