UNPKG

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

Version:

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

59 lines 8.39 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"); const core_1 = 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)); (0, core_1.SetConsistentFeatureFlags)(stack); stack.templateOptions.description = 'Integration Test for aws-apigateway-sqs'; const mockConnectLambda = defaults.deployLambdaFunction(stack, { code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); return {\'statusCode\': 200, \'body\': \'\'}; }'), runtime: defaults.COMMERCIAL_REGION_LAMBDA_NODE_RUNTIME, handler: 'connect.handler' }, 'connect'); const mockDisconnectLambda = defaults.deployLambdaFunction(stack, { code: new lambda.InlineCode('exports.handler = async (event) => { console.log(event); return {\'statusCode\': 200, \'body\': \'\'}; }'), 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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW50ZWcud3NzcXMtZXhpc3Rpbmctd2ViLXNvY2tldC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbImludGVnLndzc3FzLWV4aXN0aW5nLXdlYi1zb2NrZXQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7Ozs7Ozs7OztHQVdHOztBQUVILFVBQVU7QUFDViw2Q0FBeUM7QUFDekMsZ0NBQW9EO0FBQ3BELGtFQUF1RDtBQUN2RCxpREFBaUQ7QUFDakQsNkZBQXVGO0FBQ3ZGLDJGQUFrRjtBQUNsRix3REFBd0Q7QUFDeEQsMkRBQTJEO0FBQzNELHlEQUEyRTtBQUUzRSxRQUFRO0FBQ1IsTUFBTSxHQUFHLEdBQUcsSUFBSSxpQkFBRyxFQUFFLENBQUM7QUFDdEIsTUFBTSxLQUFLLEdBQUcsSUFBSSxtQkFBSyxDQUFDLEdBQUcsRUFBRSxRQUFRLENBQUMsc0JBQXNCLENBQUMsVUFBVSxDQUFDLENBQUMsQ0FBQztBQUMxRSxJQUFBLGdDQUF5QixFQUFDLEtBQUssQ0FBQyxDQUFDO0FBQ2pDLEtBQUssQ0FBQyxlQUFlLENBQUMsV0FBVyxHQUFHLHlDQUF5QyxDQUFDO0FBRTlFLE1BQU0saUJBQWlCLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRTtJQUM3RCxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLDBHQUEwRyxDQUFDO0lBQ3ZJLE9BQU8sRUFBRSxRQUFRLENBQUMscUNBQXFDO0lBQ3ZELE9BQU8sRUFBRSxpQkFBaUI7Q0FDM0IsRUFBRSxTQUFTLENBQUMsQ0FBQztBQUVkLE1BQU0sb0JBQW9CLEdBQUcsUUFBUSxDQUFDLG9CQUFvQixDQUFDLEtBQUssRUFBRTtJQUNoRSxJQUFJLEVBQUUsSUFBSSxNQUFNLENBQUMsVUFBVSxDQUFDLDBHQUEwRyxDQUFDO0lBQ3ZJLE9BQU8sRUFBRSxRQUFRLENBQUMscUNBQXFDO0lBQ3ZELE9BQU8sRUFBRSxvQkFBb0I7Q0FDOUIsRUFBRSxZQUFZLENBQUMsQ0FBQztBQUVqQixJQUFJLGdDQUEwQixDQUFDLEtBQUssRUFBRSw0QkFBNEIsRUFBRTtJQUNsRSxvQkFBb0IsRUFBRSxJQUFJLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxFQUFFLGVBQWUsRUFBRTtRQUNyRSxPQUFPLEVBQUUsZUFBZTtRQUN4QixXQUFXLEVBQUUsZ0JBQWdCO1FBQzdCLG1CQUFtQixFQUFFO1lBQ25CLFdBQVcsRUFBRSxJQUFJLDBEQUEwQixDQUFDLG9CQUFvQixFQUFFLGlCQUFpQixDQUFDO1lBQ3BGLFVBQVUsRUFBRSxJQUFJLHFEQUFzQixFQUFFO1NBQ3pDO1FBQ0Qsc0JBQXNCLEVBQUU7WUFDdEIsV0FBVyxFQUFFLElBQUksMERBQTBCLENBQUMsdUJBQXVCLEVBQUUsb0JBQW9CLENBQUM7U0FDM0Y7S0FDRixDQUFDO0NBQ0gsQ0FBQyxDQUFDO0FBRUgsUUFBUTtBQUNSLElBQUksNkJBQVMsQ0FBQyxLQUFLLEVBQUUsT0FBTyxFQUFFO0lBQzVCLFNBQVMsRUFBRTtRQUNULEtBQUs7S0FDTjtDQUNGLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogIENvcHlyaWdodCBBbWF6b24uY29tLCBJbmMuIG9yIGl0cyBhZmZpbGlhdGVzLiBBbGwgUmlnaHRzIFJlc2VydmVkLlxuICpcbiAqICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpLiBZb3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlXG4gKiAgd2l0aCB0aGUgTGljZW5zZS4gQSBjb3B5IG9mIHRoZSBMaWNlbnNlIGlzIGxvY2F0ZWQgYXRcbiAqXG4gKiAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqICBvciBpbiB0aGUgJ2xpY2Vuc2UnIGZpbGUgYWNjb21wYW55aW5nIHRoaXMgZmlsZS4gVGhpcyBmaWxlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuICdBUyBJUycgQkFTSVMsIFdJVEhPVVQgV0FSUkFOVElFU1xuICogIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGV4cHJlc3Mgb3IgaW1wbGllZC4gU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zXG4gKiAgYW5kIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5cbi8vIEltcG9ydHNcbmltcG9ydCB7IEFwcCwgU3RhY2sgfSBmcm9tIFwiYXdzLWNkay1saWJcIjtcbmltcG9ydCB7IEFwaUdhdGV3YXlWMldlYlNvY2tldFRvU3FzIH0gZnJvbSBcIi4uL2xpYlwiO1xuaW1wb3J0IHsgSW50ZWdUZXN0IH0gZnJvbSAnQGF3cy1jZGsvaW50ZWctdGVzdHMtYWxwaGEnO1xuaW1wb3J0ICogYXMgbGFtYmRhIGZyb20gJ2F3cy1jZGstbGliL2F3cy1sYW1iZGEnO1xuaW1wb3J0IHsgV2ViU29ja2V0TGFtYmRhSW50ZWdyYXRpb24gfSBmcm9tIFwiYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXl2Mi1pbnRlZ3JhdGlvbnNcIjtcbmltcG9ydCB7IFdlYlNvY2tldElhbUF1dGhvcml6ZXIgfSBmcm9tICdhd3MtY2RrLWxpYi9hd3MtYXBpZ2F0ZXdheXYyLWF1dGhvcml6ZXJzJztcbmltcG9ydCAqIGFzIGFwaWd3djIgZnJvbSAnYXdzLWNkay1saWIvYXdzLWFwaWdhdGV3YXl2Mic7XG5pbXBvcnQgKiBhcyBkZWZhdWx0cyBmcm9tICdAYXdzLXNvbHV0aW9ucy1jb25zdHJ1Y3RzL2NvcmUnO1xuaW1wb3J0IHsgU2V0Q29uc2lzdGVudEZlYXR1cmVGbGFncyB9IGZyb20gJ0Bhd3Mtc29sdXRpb25zLWNvbnN0cnVjdHMvY29yZSc7XG5cbi8vIFNldHVwXG5jb25zdCBhcHAgPSBuZXcgQXBwKCk7XG5jb25zdCBzdGFjayA9IG5ldyBTdGFjayhhcHAsIGRlZmF1bHRzLmdlbmVyYXRlSW50ZWdTdGFja05hbWUoX19maWxlbmFtZSkpO1xuU2V0Q29uc2lzdGVudEZlYXR1cmVGbGFncyhzdGFjayk7XG5zdGFjay50ZW1wbGF0ZU9wdGlvbnMuZGVzY3JpcHRpb24gPSAnSW50ZWdyYXRpb24gVGVzdCBmb3IgYXdzLWFwaWdhdGV3YXktc3FzJztcblxuY29uc3QgbW9ja0Nvbm5lY3RMYW1iZGEgPSBkZWZhdWx0cy5kZXBsb3lMYW1iZGFGdW5jdGlvbihzdGFjaywge1xuICBjb2RlOiBuZXcgbGFtYmRhLklubGluZUNvZGUoJ2V4cG9ydHMuaGFuZGxlciA9IGFzeW5jIChldmVudCkgPT4geyBjb25zb2xlLmxvZyhldmVudCk7IHJldHVybiB7XFwnc3RhdHVzQ29kZVxcJzogMjAwLCBcXCdib2R5XFwnOiBcXCdcXCd9OyB9JyksXG4gIHJ1bnRpbWU6IGRlZmF1bHRzLkNPTU1FUkNJQUxfUkVHSU9OX0xBTUJEQV9OT0RFX1JVTlRJTUUsXG4gIGhhbmRsZXI6ICdjb25uZWN0LmhhbmRsZXInXG59LCAnY29ubmVjdCcpO1xuXG5jb25zdCBtb2NrRGlzY29ubmVjdExhbWJkYSA9IGRlZmF1bHRzLmRlcGxveUxhbWJkYUZ1bmN0aW9uKHN0YWNrLCB7XG4gIGNvZGU6IG5ldyBsYW1iZGEuSW5saW5lQ29kZSgnZXhwb3J0cy5oYW5kbGVyID0gYXN5bmMgKGV2ZW50KSA9PiB7IGNvbnNvbGUubG9nKGV2ZW50KTsgcmV0dXJuIHtcXCdzdGF0dXNDb2RlXFwnOiAyMDAsIFxcJ2JvZHlcXCc6IFxcJ1xcJ307IH0nKSxcbiAgcnVudGltZTogZGVmYXVsdHMuQ09NTUVSQ0lBTF9SRUdJT05fTEFNQkRBX05PREVfUlVOVElNRSxcbiAgaGFuZGxlcjogJ2Rpc2Nvbm5lY3QuaGFuZGxlcidcbn0sICdkaXNjb25uZWN0Jyk7XG5cbm5ldyBBcGlHYXRld2F5VjJXZWJTb2NrZXRUb1NxcyhzdGFjaywgJ0FwaUdhdGV3YXlWMldlYlNvY2tldFRvU3FzJywge1xuICBleGlzdGluZ1dlYlNvY2tldEFwaTogbmV3IGFwaWd3djIuV2ViU29ja2V0QXBpKHN0YWNrLCAnVGVzdFdlYlNvY2tldCcsIHtcbiAgICBhcGlOYW1lOiAnVGVzdFdlYlNvY2tldCcsXG4gICAgZGVzY3JpcHRpb246ICdUZXN0IFdlYlNvY2tldCcsXG4gICAgY29ubmVjdFJvdXRlT3B0aW9uczoge1xuICAgICAgaW50ZWdyYXRpb246IG5ldyBXZWJTb2NrZXRMYW1iZGFJbnRlZ3JhdGlvbignQ29ubmVjdEludGVncmF0aW9uJywgbW9ja0Nvbm5lY3RMYW1iZGEpLFxuICAgICAgYXV0aG9yaXplcjogbmV3IFdlYlNvY2tldElhbUF1dGhvcml6ZXIoKVxuICAgIH0sXG4gICAgZGlzY29ubmVjdFJvdXRlT3B0aW9uczoge1xuICAgICAgaW50ZWdyYXRpb246IG5ldyBXZWJTb2NrZXRMYW1iZGFJbnRlZ3JhdGlvbignRGlzY29ubmVjdEludGVncmF0aW9uJywgbW9ja0Rpc2Nvbm5lY3RMYW1iZGEpXG4gICAgfVxuICB9KVxufSk7XG5cbi8vIFN5bnRoXG5uZXcgSW50ZWdUZXN0KHN0YWNrLCAnSW50ZWcnLCB7XG4gIHRlc3RDYXNlczogW1xuICAgIHN0YWNrXG4gIF1cbn0pO1xuIl19