Api Gateway Websocket API 30s timeout

0

This might be the same issue as mentioned in this Stackoverflow thread https://stackoverflow.com/questions/61617193/aws-api-gateway-websocket-timeout

We have Websocket API set up and it is working well for messaging between frontend, websocket and lambda integration under 30s. but it would receive a message saying "Endpoint request timed out" after about 30s

How to make it run for more than 30s? According to the limit documentation, it should have 10 minutes idle time. https://docs.aws.amazon.com/apigateway/latest/developerguide/limits.html

1개 답변
1

Looking at the settings in the following document, the default timeout setting value seems to be 29 seconds.
I thought that perhaps this timeout value limitation prevented execution for more than 30 seconds.
Also, the maximum value would be 29 seconds, since the set value is 50-29,000 milliseconds.
https://docs.aws.amazon.com/apigateway/latest/developerguide/apigateway-websocket-api-integration-requests.html

profile picture
전문가
답변함 일 년 전
  • yes, indeed, there is 29s timeout setting. How should I configure it so that it can have more than 29s timeout and have the 10 minute idle time?

  • Idle timeout and integration timeout are different setting values. Integration timeout is a timeout about the processing of the API. In other words, it is a function to time out when the API process has become too long. Idle Timeout is a setting for the amount of time to maintain a connection between the client and the API Gateway. This means that the connection can be reused until the idle timeout expires.
    In your case, it seems that you want to run an API that requires more than 30 seconds of processing, but the timeout value related to the execution time is the integration timeout, so setting an idle timeout will not increase the execution time. Also, the integration timeout can only be set to 29 seconds, so I don't think it is possible to run it for more than 30 seconds. If you need to process more than 30 seconds, it is recommended to create an asynchronous system.

  • yes, I need more than 30s processing time which is limited by the integration timeout limit of 29s. What services should I use to make an asynchronous system?

  • SQS is a typical service used in asynchronous systems. You can create an asynchronous system by having Lambda or other services start when a message is stored in SQS. https://docs.aws.amazon.com/AWSSimpleQueueService/latest/SQSDeveloperGuide/sqs-configure-lambda-function-trigger.html

  • If I want to use it to build a heartbeat service, what service should I use to check a heartbeat from many frontend clients in a set interval like 30s? If the service doesn't receive a heartbeat from the client, it should update the client status in the database.

로그인하지 않았습니다. 로그인해야 답변을 게시할 수 있습니다.

좋은 답변은 질문에 명확하게 답하고 건설적인 피드백을 제공하며 질문자의 전문적인 성장을 장려합니다.

질문 답변하기에 대한 가이드라인