Skip to content

ConnectionId for API Gateway requests is missing #76

Closed

Description

@AntonRamashko

As in code example from Node.js from here connectionId is used to manage WebSocket sessions:

exports.handler = function(event, context, callback) {
var deleteParams = {
    TableName: process.env.TABLE_NAME,
    Key: {
     connectionId: { S: event.requestContext.connectionId }
    }
};

Meanwhile Java class com.amazonaws.services.lambda.runtime.events.APIGatewayProxyRequestEvent.ProxyRequestContext doesn't have such field.

Activity

  1. PatrykGala commented on Feb 26, 2019

    @PatrykGala

    I've used workaround:

    public class ConnectHandler implements RequestHandler<Map<String, Object>, ApiGatewayResponse> {
        private static final Logger LOG = LogManager.getLogger(ConnectHandler.class);
    
        @Override
        public ApiGatewayResponse handleRequest(Map<String, Object> input, Context context) {
            String connectionId = extractConnectionId(input);
            LOG.info("connectionid: {}", connectionId);
            return ApiGatewayResponse.ok(connectionId);
        }
    
        private String extractConnectionId(Map<String, Object> input) {
            Map<String, Object> requestContext = (Map<String, Object>) input.get("requestContext");
            return (String) requestContext.get("connectionId");
        }
    }
    
  2. lucasam commented on Aug 1, 2019

    @lucasam

    I believe this PR #92 fixes this issue.
    A new class https://github.com/aws/aws-lambda-java-libs/blob/master/aws-lambda-java-events/src/main/java/com/amazonaws/services/lambda/runtime/events/APIGatewayV2ProxyRequestEvent.java is created to handle APIGatewayV2 parameters

    Still not present at version 2.6.0. Needs to be built from sources

  3. carlzogh commented on Apr 28, 2020

    @carlzogh
    Contributor

    @lucasam APIGatewayV2ProxyRequestEvent was added in version 2.2.7

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions