How can I send a response body back to a client from an AWS Lambda function through API Gateway WebSocket

1

API gateway configured to call a lambda application for $default messages.

The Java Lambda application where I return an APIGatewayV2WebSocketResponse object as a response. Before returning, I set the response code and response body.

However, the client does not receive these responses. How can I ensure that the client receives the response code and body.

2 Answers
0
Accepted Answer

Hi, you need to post the message using the Api Gateway Management API, indicating the Connection Id where you need to send your message to and your API url. You can use the aws sdk to do this, you can use the postToConnection method in the AmazonApiGatewayManagementApiClient class. Please check

AWS
answered 2 months ago
0

Hi, You could enable 2-way communication on API Gateway websocket to send the response back to client. After 2-way communication is enabled,

  • For proxy integrations, API Gateway automatically passes the backend output to the caller as the complete payload. There is no integration response.
  • For non-proxy integrations, you must set up at least one integration response:

Kindly refer this doc for more details.

Additionally, you could also use "postToConnection" as explained in post, However this requires additional code to be written on the integration side to Post the message back to client

profile pictureAWS
Bony_T
answered 2 months ago

You are not logged in. Log in to post an answer.

A good answer clearly answers the question and provides constructive feedback and encourages professional growth in the question asker.

Guidelines for Answering Questions