UNPKG

@aws-solutions-constructs/aws-apigatewayv2websocket-sqs

Version:

CDK constructs for defining an interaction between an AWS Lambda function and an Amazon S3 bucket.

57 lines 7.69 kB
"use strict"; /** * Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. * * Licensed under the Apache License, Version 2.0 (the "License"). You may not use this file except in compliance * with the License. A copy of the License is located at * * http://www.apache.org/licenses/LICENSE-2.0 * * or in the 'license' file accompanying this file. This file is distributed on an 'AS IS' BASIS, WITHOUT WARRANTIES * OR CONDITIONS OF ANY KIND, express or implied. See the License for the specific language governing permissions * and limitations under the License. */ Object.defineProperty(exports, "__esModule", { value: true }); // Imports const aws_cdk_lib_1 = require("aws-cdk-lib"); const lib_1 = require("../lib"); const integ_tests_alpha_1 = require("@aws-cdk/integ-tests-alpha"); const lambda = require("aws-cdk-lib/aws-lambda"); const aws_apigatewayv2_integrations_1 = require("aws-cdk-lib/aws-apigatewayv2-integrations"); const aws_apigatewayv2_authorizers_1 = require("aws-cdk-lib/aws-apigatewayv2-authorizers"); const apigwv2 = require("aws-cdk-lib/aws-apigatewayv2"); const defaults = require("@aws-solutions-constructs/core"); // Setup const app = new aws_cdk_lib_1.App(); const stack = new aws_cdk_lib_1.Stack(app, defaults.generateIntegStackName(__filename)); stack.templateOptions.description = 'Integration Test for aws-apigateway-sqs'; const mockConnectLambda = defaults.deployLambdaFunction(stack, { code: lambda.Code.fromAsset(`${__dirname}/lambda`), runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'connect.handler' }, 'connect'); const mockDisconnectLambda = defaults.deployLambdaFunction(stack, { code: lambda.Code.fromAsset(`${__dirname}/lambda`), runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'disconnect.handler' }, 'disconnect'); new lib_1.ApiGatewayV2WebSocketToSqs(stack, 'ApiGatewayV2WebSocketToSqs', { existingWebSocketApi: new apigwv2.WebSocketApi(stack, 'TestWebSocket', { apiName: 'TestWebSocket', description: 'Test WebSocket', connectRouteOptions: { integration: new aws_apigatewayv2_integrations_1.WebSocketLambdaIntegration('ConnectIntegration', mockConnectLambda), authorizer: new aws_apigatewayv2_authorizers_1.WebSocketIamAuthorizer() }, disconnectRouteOptions: { integration: new aws_apigatewayv2_integrations_1.WebSocketLambdaIntegration('DisconnectIntegration', mockDisconnectLambda) } }) }); // Synth new integ_tests_alpha_1.IntegTest(stack, 'Integ', { testCases: [ stack ] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcud3NzcXMtZXhpc3Rpbmctd2ViLXNvY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVnLndzc3FzLWV4aXN0aW5nLXdlYi1zb2NrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILFVBQVU7QUFDViw2Q0FBeUM7QUFDekMsZ0NBQW9EO0FBQ3BELGtFQUF1RDtBQUN2RCxpREFBaUQ7QUFDakQsNkZBQXVGO0FBQ3ZGLDJGQUFrRjtBQUNsRix3REFBd0Q7QUFDeEQsMkRBQTJEO0FBRTNELFFBQVE7QUFDUixNQUFNLEdBQUcsR0FBRyxJQUFJLGlCQUFHLEVBQUUsQ0FBQztBQUN0QixNQUFNLEtBQUssR0FBRyxJQUFJLG1CQUFLLENBQUMsR0FBRyxFQUFFLFFBQVEsQ0FBQyxzQkFBc0IsQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO0FBQzFFLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLHlDQUF5QyxDQUFDO0FBRTlFLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRTtJQUM3RCxJQUFJLEVBQUUsTUFBTSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxTQUFTLFNBQVMsQ0FBQztJQUNsRCxPQUFPLEVBQUUsUUFBUSxDQUFDLHFDQUFxQztJQUN2RCxPQUFPLEVBQUUsaUJBQWlCO0NBQzNCLEVBQUUsU0FBUyxDQUFDLENBQUM7QUFFZCxNQUFNLG9CQUFvQixHQUFHLFFBQVEsQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLEVBQUU7SUFDaEUsSUFBSSxFQUFFLE1BQU0sQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxTQUFTLENBQUM7SUFDbEQsT0FBTyxFQUFFLFFBQVEsQ0FBQyxxQ0FBcUM7SUFDdkQsT0FBTyxFQUFFLG9CQUFvQjtDQUM5QixFQUFFLFlBQVksQ0FBQyxDQUFDO0FBRWpCLElBQUksZ0NBQTBCLENBQUMsS0FBSyxFQUFFLDRCQUE0QixFQUFFO0lBQ2xFLG9CQUFvQixFQUFFLElBQUksT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLEVBQUUsZUFBZSxFQUFFO1FBQ3JFLE9BQU8sRUFBRSxlQUFlO1FBQ3hCLFdBQVcsRUFBRSxnQkFBZ0I7UUFDN0IsbUJBQW1CLEVBQUU7WUFDbkIsV0FBVyxFQUFFLElBQUksMERBQTBCLENBQUMsb0JBQW9CLEVBQUUsaUJBQWlCLENBQUM7WUFDcEYsVUFBVSxFQUFFLElBQUkscURBQXNCLEVBQUU7U0FDekM7UUFDRCxzQkFBc0IsRUFBRTtZQUN0QixXQUFXLEVBQUUsSUFBSSwwREFBMEIsQ0FBQyx1QkFBdUIsRUFBRSxvQkFBb0IsQ0FBQztTQUMzRjtLQUNGLENBQUM7Q0FDSCxDQUFDLENBQUM7QUFFSCxRQUFRO0FBQ1IsSUFBSSw2QkFBUyxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUU7SUFDNUIsU0FBUyxFQUFFO1FBQ1QsS0FBSztLQUNOO0NBQ0YsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiAgQ29weXJpZ2h0IEFtYXpvbi5jb20sIEluYy4gb3IgaXRzIGFmZmlsaWF0ZXMuIEFsbCBSaWdodHMgUmVzZXJ2ZWQuXG4gKlxuICogIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIikuIFlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2VcbiAqICB3aXRoIHRoZSBMaWNlbnNlLiBBIGNvcHkgb2YgdGhlIExpY2Vuc2UgaXMgbG9jYXRlZCBhdFxuICpcbiAqICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogIG9yIGluIHRoZSAnbGljZW5zZScgZmlsZSBhY2NvbXBhbnlpbmcgdGhpcyBmaWxlLiBUaGlzIGZpbGUgaXMgZGlzdHJpYnV0ZWQgb24gYW4gJ0FTIElTJyBCQVNJUywgV0lUSE9VVCBXQVJSQU5USUVTXG4gKiAgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZXhwcmVzcyBvciBpbXBsaWVkLiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnNcbiAqICBhbmQgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cblxuLy8gSW1wb3J0c1xuaW1wb3J0IHsgQXBwLCBTdGFjayB9IGZyb20gXCJhd3MtY2RrLWxpYlwiO1xuaW1wb3J0IHsgQXBpR2F0ZXdheVYyV2ViU29ja2V0VG9TcXMgfSBmcm9tIFwiLi4vbGliXCI7XG5pbXBvcnQgeyBJbnRlZ1Rlc3QgfSBmcm9tICdAYXdzLWNkay9pbnRlZy10ZXN0cy1hbHBoYSc7XG5pbXBvcnQgKiBhcyBsYW1iZGEgZnJvbSAnYXdzLWNkay1saWIvYXdzLWxhbWJkYSc7XG5pbXBvcnQgeyBXZWJTb2NrZXRMYW1iZGFJbnRlZ3JhdGlvbiB9IGZyb20gXCJhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheXYyLWludGVncmF0aW9uc1wiO1xuaW1wb3J0IHsgV2ViU29ja2V0SWFtQXV0aG9yaXplciB9IGZyb20gJ2F3cy1jZGstbGliL2F3cy1hcGlnYXRld2F5djItYXV0aG9yaXplcnMnO1xuaW1wb3J0ICogYXMgYXBpZ3d2MiBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheXYyJztcbmltcG9ydCAqIGFzIGRlZmF1bHRzIGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5cbi8vIFNldHVwXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5jb25zdCBzdGFjayA9IG5ldyBTdGFjayhhcHAsIGRlZmF1bHRzLmdlbmVyYXRlSW50ZWdTdGFja05hbWUoX19maWxlbmFtZSkpO1xuc3RhY2sudGVtcGxhdGVPcHRpb25zLmRlc2NyaXB0aW9uID0gJ0ludGVncmF0aW9uIFRlc3QgZm9yIGF3cy1hcGlnYXRld2F5LXNxcyc7XG5cbmNvbnN0IG1vY2tDb25uZWN0TGFtYmRhID0gZGVmYXVsdHMuZGVwbG95TGFtYmRhRnVuY3Rpb24oc3RhY2ssIHtcbiAgY29kZTogbGFtYmRhLkNvZGUuZnJvbUFzc2V0KGAke19fZGlybmFtZX0vbGFtYmRhYCksXG4gIHJ1bnRpbWU6IGRlZmF1bHRzLkNPTU1FUkNJQUxfUkVHSU9OX0xBTUJEQV9OT0RFX1JVTlRJTUUsXG4gIGhhbmRsZXI6ICdjb25uZWN0LmhhbmRsZXInXG59LCAnY29ubmVjdCcpO1xuXG5jb25zdCBtb2NrRGlzY29ubmVjdExhbWJkYSA9IGRlZmF1bHRzLmRlcGxveUxhbWJkYUZ1bmN0aW9uKHN0YWNrLCB7XG4gIGNvZGU6IGxhbWJkYS5Db2RlLmZyb21Bc3NldChgJHtfX2Rpcm5hbWV9L2xhbWJkYWApLFxuICBydW50aW1lOiBkZWZhdWx0cy5DT01NRVJDSUFMX1JFR0lPTl9MQU1CREFfTk9ERV9SVU5USU1FLFxuICBoYW5kbGVyOiAnZGlzY29ubmVjdC5oYW5kbGVyJ1xufSwgJ2Rpc2Nvbm5lY3QnKTtcblxubmV3IEFwaUdhdGV3YXlWMldlYlNvY2tldFRvU3FzKHN0YWNrLCAnQXBpR2F0ZXdheVYyV2ViU29ja2V0VG9TcXMnLCB7XG4gIGV4aXN0aW5nV2ViU29ja2V0QXBpOiBuZXcgYXBpZ3d2Mi5XZWJTb2NrZXRBcGkoc3RhY2ssICdUZXN0V2ViU29ja2V0Jywge1xuICAgIGFwaU5hbWU6ICdUZXN0V2ViU29ja2V0JyxcbiAgICBkZXNjcmlwdGlvbjogJ1Rlc3QgV2ViU29ja2V0JyxcbiAgICBjb25uZWN0Um91dGVPcHRpb25zOiB7XG4gICAgICBpbnRlZ3JhdGlvbjogbmV3IFdlYlNvY2tldExhbWJkYUludGVncmF0aW9uKCdDb25uZWN0SW50ZWdyYXRpb24nLCBtb2NrQ29ubmVjdExhbWJkYSksXG4gICAgICBhdXRob3JpemVyOiBuZXcgV2ViU29ja2V0SWFtQXV0aG9yaXplcigpXG4gICAgfSxcbiAgICBkaXNjb25uZWN0Um91dGVPcHRpb25zOiB7XG4gICAgICBpbnRlZ3JhdGlvbjogbmV3IFdlYlNvY2tldExhbWJkYUludGVncmF0aW9uKCdEaXNjb25uZWN0SW50ZWdyYXRpb24nLCBtb2NrRGlzY29ubmVjdExhbWJkYSlcbiAgICB9XG4gIH0pXG59KTtcblxuLy8gU3ludGhcbm5ldyBJbnRlZ1Rlc3Qoc3RhY2ssICdJbnRlZycsIHtcbiAgdGVzdENhc2VzOiBbXG4gICAgc3RhY2tcbiAgXVxufSk7XG4iXX0=