Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Se um serviço for executado durante demasiado tempo, o sistema toma medidas para o terminar ou limitar.
Para os serviços do Cloud Run, a definição de tempo limite do pedido especifica o tempo durante o qual os serviços implementados no Cloud Run têm de devolver uma resposta. Se não for devolvida uma resposta dentro do tempo especificado, o pedido termina e é devolvido um erro 504. Tenha em atenção que a instância do contentor que
serviu o pedido não é terminada. O contentor ou o código podem continuar a processar o pedido terminado e podem estar a processar outros pedidos. Para evitar esta situação, impeça os limites de tempo no seu serviço com as seguintes técnicas:
Defina um limite de tempo superior ao tempo de execução esperado.
Monitorize o tempo restante durante a execução. Em seguida, faça a limpeza e
regresse antecipadamente.
Período limite
Por predefinição, o tempo limite é de 5 minutos (300 segundos) e pode ser prolongado até 60 minutos (3600 segundos).
Pode alterar esta definição quando implementar uma imagem de contentor ou atualizando a configuração do serviço.
Além de alterar o limite de tempo do pedido do Cloud Run, também deve
verificar a sua framework de linguagem para ver se tem a sua própria definição de limite de tempo do pedido
que também tem de atualizar. Alguns clientes do serviço Cloud Run também podem impor um limite de tempo mais restritivo.
Funções necessárias
Para receber as autorizações de que
precisa para configurar e implementar serviços do Cloud Run,
peça ao seu administrador para lhe conceder as seguintes funções de IAM:
Se estiver a implementar um serviço
ou uma função a partir do código fonte, também tem de ter funções adicionais concedidas no seu projeto e na conta de serviço do Cloud Build.
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 linha de comandos gcloud ou de um ficheiro YAML quando cria um novo serviço ou implementa uma nova revisão.
Selecione Serviços no menu e clique em Implementar contentor para configurar um novo serviço.
Se estiver a configurar um serviço existente, clique no serviço e, de seguida, em Editar e implementar nova revisão.
Se estiver a configurar um novo serviço, preencha a página de definições
iniciais do serviço e, de seguida, clique em Contentores, volumes, rede, segurança para expandir a página de configuração do serviço.
Clique no separador Contentor.
No campo Tempo limite do pedido, introduza o valor do tempo limite que quer usar em segundos. Use valores entre 1 e 3600 segundos ou entre 1 e 60 minutos.
TIMEOUT: o tempo dentro do qual uma resposta tem de ser devolvida, usando um valor inteiro ou um valor de duração absoluta, por exemplo, 1m20s, que é 1 minuto e 20 segundos. Se usar um valor inteiro, a unidade é considerada segundos. O valor que
especificar tem de ser inferior a 60 minutos.
Também pode definir o limite de tempo do pedido durante a implementação através do comando:
gcloudrundeploy--imageIMAGE_URL--timeout=TIMEOUT
Substitua o seguinte:
IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se usar o Artifact Registry, o repositórioREPO_NAMEtem de
já estar criado. O URL segue o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
TIMEOUT: o tempo dentro do qual uma resposta tem de ser devolvida, usando um valor inteiro ou um valor de duração, por exemplo, 1m20s, que é 1 minuto e 20 segundos. Se usar um valor inteiro, a unidade é
considerada segundos. O valor especificado tem de ser inferior a 60 minutos.
YAML
Se estiver a criar um novo serviço, ignore este passo.
Se estiver a atualizar um serviço existente, transfira a respetiva configuração YAML:
IMAGE_URL: uma referência à imagem do contentor, por exemplo, us-docker.pkg.dev/cloudrun/container/hello:latest. Se usar o Artifact Registry, o repositórioREPO_NAMEtem de
já estar criado. O URL segue o formato LOCATION-docker.pkg.dev/PROJECT_ID/REPO_NAME/PATH:TAG
.
VALUE: o limite de tempo escolhido, em segundos.
Crie ou atualize o serviço com o seguinte comando:
resource"google_cloud_run_v2_service""default"{name="cloudrun-service-request-timeout"location="us-central1"deletion_protection=false # set to "true" in productiontemplate{containers{image="us-docker.pkg.dev/cloudrun/container/hello"} # Timeouttimeout="300s"}}
Substitua 300s pelo tempo limite do pedido pretendido do seu serviço.
Veja as definições de limite de tempo do pedido
Para ver as definições de tempo limite de pedidos atuais do seu serviço do Cloud Run:
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Difícil de entender","hardToUnderstand","thumb-down"],["Informações incorretas ou exemplo de código","incorrectInformationOrSampleCode","thumb-down"],["Não contém as informações/amostras de que eu preciso","missingTheInformationSamplesINeed","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2025-08-21 UTC."],[],[],null,["# Set request timeout for services\n\nIf a service runs for too long, the system takes steps to terminate or throttle\nit.\n\nFor Cloud Run services, the request timeout setting specifies the\ntime within which a response must be returned by services deployed to\nCloud Run. If a response isn't returned within the time specified, the\nrequest ends and an error 504 is returned. Note that the container instance that\nserved the request is not terminated. The container or code might keep\nprocessing the terminated request and might be processing other requests. To\navoid this, prevent timeouts in your service with the following techniques:\n\n- Set a timeout higher than your expected execution time.\n- Track the amount of time left during execution. Then perform cleanup and return early.\n\nTimeout period\n--------------\n\nThe timeout is set by default to 5 minutes\n(300 seconds) and can be extended up to\n60 minutes\n(3600 seconds).\n\nWhen triggering your service from [Eventarc events](/run/docs/triggering/trigger-with-events),\n[Pub/Sub push subscriptions](/run/docs/triggering/pubsub-triggers)\nor [Cloud Scheduler](/run/docs/triggering/using-scheduler), the timeout\nof these services apply.\n| **Important:** For a timeout longer than 15 minutes, Google recommends implementing retries and making sure the service is tolerant to clients re-connecting in case the connection is lost (either by ensuring requests are idempotent, or by designing request handlers in such a way that they can resume from the point where they left off). The longer the timeout is, the more likely the connection can be lost due to failures on the client side or the Cloud Run side. When a client re-connects, a new request is initiated and the client isn't guaranteed to connect to the same instance of the service.\n\nYou can change this setting when you deploy a container image or by updating\nthe service configuration.\n\nIn addition to changing the Cloud Run request timeout, you should also\ncheck your language framework to see whether it has its own request timeout\nsetting that you must also update. Some clients of the Cloud Run\nservice might also impose a more restrictive timeout.\n\nRequired roles\n--------------\n\n\nTo get the permissions that\nyou need to configure and deploy Cloud Run services,\n\nask your administrator to grant you the\nfollowing IAM roles:\n\n- [Cloud Run Developer](/iam/docs/roles-permissions/run#run.developer) (`roles/run.developer`) on the Cloud Run service\n- [Service Account User](/iam/docs/roles-permissions/iam#iam.serviceAccountUser) (`roles/iam.serviceAccountUser`) on the service identity\n\n\nIf you are deploying a [service](/run/docs/deploying-source-code#required_roles)\nor [function](/run/docs/deploy-functions#required-roles) from source code, you\nmust also have additional roles granted to you on your project and\nCloud Build service account.\n\nFor a list of IAM roles and permissions that are associated with\nCloud Run, see\n[Cloud Run IAM roles](/run/docs/reference/iam/roles)\nand [Cloud Run IAM permissions](/run/docs/reference/iam/permissions).\nIf your Cloud Run service interfaces with\nGoogle Cloud APIs, such as Cloud Client Libraries, see the\n[service identity configuration guide](/run/docs/configuring/services/service-identity).\nFor more information about granting roles, see\n[deployment permissions](/run/docs/reference/iam/roles#additional-configuration)\nand [manage access](/iam/docs/granting-changing-revoking-access).\n\nSetting and updating request timeout\n------------------------------------\n\nAny configuration change leads to the\ncreation of a new revision. Subsequent revisions will also automatically get\nthis configuration setting unless you make explicit updates to change it.\n\nYou can set request timeout using the Google Cloud console, the gcloud\ncommand line, or a YAML file when you [create a new service](/run/docs/deploying#service) or\n[deploy a new revision](/run/docs/deploying#revision). \n\n### Console\n\n\n1. In the Google Cloud console, go to Cloud Run:\n\n [Go to Cloud Run](https://console.cloud.google.com/run)\n2. Select **Services** from the menu, and click **Deploy container** to\n configure a new service.\n If you are configuring an existing service, click the\n service, then click **Edit and deploy new revision**.\n\n3. If you are configuring a new service, fill out the initial service\n settings page, then click **Container(s), Volumes, Networking, Security** to expand the\n service configuration page.\n\n4. Click the **Container** tab.\n\n - In the **Request timeout** field, enter the timeout value that you want to use in seconds. Use values ranging from `1` to `3600` seconds, or from 1 to `60` minutes.\n5. Click **Create** or **Deploy**.\n\n### gcloud\n\nYou can [update the request timeout](/sdk/gcloud/reference/run/services/update)\nfor a given revision at any time by using the following command: \n\n```bash\ngcloud run services update SERVICE --timeout=TIMEOUT\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eSERVICE\u003c/var\u003e: the name of your service.\n- \u003cvar translate=\"no\"\u003eTIMEOUT\u003c/var\u003e: the time within which a response must be\n returned, using an integer value or an\n [absolute duration value](/sdk/gcloud/reference/topic/datetimes)---for\n example `1m20s` which is 1 minute, 20 seconds. If you\n use an integer value, the unit is assumed to be seconds. The value you\n specify must be less than 60 minutes.\n\n | **Note:** When you update your service with the new timeout value, a new revision is created.\n\nYou can also set the request timeout during\n[deployment](/sdk/gcloud/reference/run/deploy) using the command: \n\n```bash\ngcloud run deploy --image IMAGE_URL --timeout=TIMEOUT\n```\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eIMAGE_URL\u003c/var\u003e: a reference to the container image, for example, `us-docker.pkg.dev/cloudrun/container/hello:latest`. If you use Artifact Registry, the [repository](/artifact-registry/docs/repositories/create-repos#docker) \u003cvar translate=\"no\"\u003eREPO_NAME\u003c/var\u003e must already be created. The URL follows the format of \u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e`-docker.pkg.dev/`\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e`/`\u003cvar translate=\"no\"\u003eREPO_NAME\u003c/var\u003e`/`\u003cvar translate=\"no\"\u003ePATH\u003c/var\u003e`:`\u003cvar translate=\"no\"\u003eTAG\u003c/var\u003e .\n- \u003cvar translate=\"no\"\u003eTIMEOUT\u003c/var\u003e: the time within which a response must be returned, using an integer value or a duration value---for example, `1m20s` which is 1 minute, 20 seconds. If you use an integer value, the unit is assumed to be seconds. The value you specify must be less than 60 minutes.\n\n### YAML\n\n1. If you are creating a new service, skip this step.\n If you are updating an existing service, download its [YAML configuration](/run/docs/reference/yaml/v1):\n\n ```bash\n gcloud run services describe SERVICE --format export \u003e service.yaml\n ```\n2. Update the `timeoutSeconds` attribute:\n\n ```yaml\n apiVersion: serving.knative.dev/v1\n kind: Service\n metadata:\n name: SERVICE\n spec:\n template:\n spec:\n containers:\n - image: IMAGE\n timeoutSeconds: VALUE\n ```\n\n Replace the following:\n - \u003cvar translate=\"no\"\u003eSERVICE\u003c/var\u003e: the name of your Cloud Run service.\n - \u003cvar translate=\"no\"\u003eIMAGE_URL\u003c/var\u003e: a reference to the container image, for example, `us-docker.pkg.dev/cloudrun/container/hello:latest`. If you use Artifact Registry, the [repository](/artifact-registry/docs/repositories/create-repos#docker) \u003cvar translate=\"no\"\u003eREPO_NAME\u003c/var\u003e must already be created. The URL follows the format of \u003cvar translate=\"no\"\u003eLOCATION\u003c/var\u003e`-docker.pkg.dev/`\u003cvar translate=\"no\"\u003ePROJECT_ID\u003c/var\u003e`/`\u003cvar translate=\"no\"\u003eREPO_NAME\u003c/var\u003e`/`\u003cvar translate=\"no\"\u003ePATH\u003c/var\u003e`:`\u003cvar translate=\"no\"\u003eTAG\u003c/var\u003e .\n - \u003cvar translate=\"no\"\u003eVALUE\u003c/var\u003e: the chosen timeout, in seconds.\n3. Create or update the service using the following command:\n\n ```bash\n gcloud run services replace service.yaml\n ```\n\n### Terraform\n\n\nTo learn how to apply or remove a Terraform configuration, see\n[Basic Terraform commands](/docs/terraform/basic-commands).\nAdd the following to a [`google_cloud_run_v2_service`](https://registry.terraform.io/providers/hashicorp/google/latest/docs/resources/cloud_run_v2_service) resource in your Terraform configuration: \n\n\u003cbr /\u003e\n\n resource \"google_cloud_run_v2_service\" \"default\" {\n name = \"cloudrun-service-request-timeout\"\n location = \"us-central1\"\n\n deletion_protection = false # set to \"true\" in production\n\n template {\n containers {\n image = \"us-docker.pkg.dev/cloudrun/container/hello\"\n }\n # Timeout\n timeout = \"300s\"\n }\n }\n\nReplace `300s` with your service's desired request timeout.\n\nView request timeout settings\n-----------------------------\n\nTo view the current request timeout settings for your\nCloud Run service: \n\n### Console\n\n1. In the Google Cloud console, go to Cloud Run:\n\n [Go to Cloud Run](https://console.cloud.google.com/run)\n2. Click the service you are interested in to open the **Service details**\n page.\n\n3. Click the **Revisions** tab.\n\n4. In the details panel at the right, the request timeout setting\n is listed under the **Container** tab.\n\n### gcloud\n\n1. Use the following command:\n\n ```bash\n gcloud run services describe SERVICE\n ```\n2. Locate the request timeout setting in the returned\n configuration."]]