UNPKG

@cdklabs/cdk-amazonmq

Version:
63 lines (62 loc) 10.1 kB
"use strict"; /* Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved. SPDX-License-Identifier: Apache-2.0 This custom resource lambda is heavily inspired on the AwsCustomResource lambda implementation (see: https://github.com/aws/aws-cdk/blob/main/packages/%40aws-cdk/custom-resource-handlers/lib/custom-resources/aws-custom-resource-handler/index.ts) */ Object.defineProperty(exports, "__esModule", { value: true }); exports.handler = handler; const dynamic_references_1 = require("./dynamic-references"); const rabbitmq_management_api_1 = require("./rabbitmq-management-api"); const utils_1 = require("./utils"); async function handler(event, context) { try { event.ResourceProperties[event.RequestType] = await (0, dynamic_references_1.replaceDynamicReferences)(event.ResourceProperties[event.RequestType]); event.ResourceProperties.Create = (0, utils_1.decodeCall)(event.ResourceProperties.Create); event.ResourceProperties.Update = (0, utils_1.decodeCall)(event.ResourceProperties.Update); event.ResourceProperties.Delete = (0, utils_1.decodeCall)(event.ResourceProperties.Delete); let physicalResourceId; switch (event.RequestType) { case "Create": physicalResourceId = event.ResourceProperties.Create?.physicalResourceId?.id ?? event.ResourceProperties.Update?.physicalResourceId?.id ?? event.ResourceProperties.Delete?.physicalResourceId?.id ?? event.LogicalResourceId; break; case "Update": case "Delete": physicalResourceId = event.ResourceProperties[event.RequestType]?.physicalResourceId?.id ?? event.PhysicalResourceId; break; } let data = undefined; const apiCallProps = event.ResourceProperties[event.RequestType]; if (apiCallProps !== undefined) { const { Url: url, Credentials: credentials } = event.ResourceProperties; const options = { url, credentials, ...apiCallProps, }; const response = await (0, rabbitmq_management_api_1.request)(options); if (response) { const flatData = (0, utils_1.flattenObj)(response); data = options.outputPaths ? (0, utils_1.filterKeys)(flatData, (0, utils_1.startsWithOneOf)(options.outputPaths)) : flatData; if (apiCallProps.physicalResourceId?.responsePath) { physicalResourceId = flatData[apiCallProps.physicalResourceId.responsePath]; } } } await (0, utils_1.respond)(event, "SUCCESS", "OK", physicalResourceId, data); } catch (e) { await (0, utils_1.respond)(event, "FAILED", e.message || "Internal Error", context.logStreamName, {}); } } //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9zcmMvcmFiYml0bXEvY3VzdG9tLXJlc291cmNlL2hhbmRsZXIvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBOzs7OztFQUtFOztBQWlCRiwwQkEyRUM7QUF0RkQsNkRBQWdFO0FBQ2hFLHVFQUFvRDtBQUVwRCxtQ0FNaUI7QUFFVixLQUFLLFVBQVUsT0FBTyxDQUMzQixLQUFrRCxFQUNsRCxPQUEwQjtJQUUxQixJQUFJLENBQUM7UUFDSCxLQUFLLENBQUMsa0JBQWtCLENBQUMsS0FBSyxDQUFDLFdBQVcsQ0FBQztZQUN6QyxNQUFNLElBQUEsNkNBQXdCLEVBQzVCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQzVDLENBQUM7UUFFSixLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxHQUFHLElBQUEsa0JBQVUsRUFDMUMsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sQ0FDaEMsQ0FBQztRQUNGLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEdBQUcsSUFBQSxrQkFBVSxFQUMxQyxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxDQUNoQyxDQUFDO1FBQ0YsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sR0FBRyxJQUFBLGtCQUFVLEVBQzFDLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLENBQ2hDLENBQUM7UUFFRixJQUFJLGtCQUEwQixDQUFDO1FBQy9CLFFBQVEsS0FBSyxDQUFDLFdBQVcsRUFBRSxDQUFDO1lBQzFCLEtBQUssUUFBUTtnQkFDWCxrQkFBa0I7b0JBQ2hCLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxNQUFNLEVBQUUsa0JBQWtCLEVBQUUsRUFBRTt3QkFDdkQsS0FBSyxDQUFDLGtCQUFrQixDQUFDLE1BQU0sRUFBRSxrQkFBa0IsRUFBRSxFQUFFO3dCQUN2RCxLQUFLLENBQUMsa0JBQWtCLENBQUMsTUFBTSxFQUFFLGtCQUFrQixFQUFFLEVBQUU7d0JBQ3ZELEtBQUssQ0FBQyxpQkFBaUIsQ0FBQztnQkFDMUIsTUFBTTtZQUNSLEtBQUssUUFBUSxDQUFDO1lBQ2QsS0FBSyxRQUFRO2dCQUNYLGtCQUFrQjtvQkFDaEIsS0FBSyxDQUFDLGtCQUFrQixDQUFDLEtBQUssQ0FBQyxXQUFXLENBQUMsRUFBRSxrQkFBa0IsRUFBRSxFQUFFO3dCQUNuRSxLQUFLLENBQUMsa0JBQWtCLENBQUM7Z0JBQzNCLE1BQU07UUFDVixDQUFDO1FBRUQsSUFBSSxJQUFJLEdBQVEsU0FBUyxDQUFDO1FBRTFCLE1BQU0sWUFBWSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQyxLQUFLLENBQUMsV0FBVyxDQUFDLENBQUM7UUFFakUsSUFBSSxZQUFZLEtBQUssU0FBUyxFQUFFLENBQUM7WUFDL0IsTUFBTSxFQUFFLEdBQUcsRUFBRSxHQUFHLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxHQUFHLEtBQUssQ0FBQyxrQkFBa0IsQ0FBQztZQUV4RSxNQUFNLE9BQU8sR0FBa0I7Z0JBQzdCLEdBQUc7Z0JBQ0gsV0FBVztnQkFDWCxHQUFHLFlBQVk7YUFDaEIsQ0FBQztZQUVGLE1BQU0sUUFBUSxHQUFHLE1BQU0sSUFBQSxpQ0FBTyxFQUFDLE9BQU8sQ0FBQyxDQUFDO1lBRXhDLElBQUksUUFBUSxFQUFFLENBQUM7Z0JBQ2IsTUFBTSxRQUFRLEdBQUcsSUFBQSxrQkFBVSxFQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUV0QyxJQUFJLEdBQUcsT0FBTyxDQUFDLFdBQVc7b0JBQ3hCLENBQUMsQ0FBQyxJQUFBLGtCQUFVLEVBQUMsUUFBUSxFQUFFLElBQUEsdUJBQWUsRUFBQyxPQUFPLENBQUMsV0FBVyxDQUFDLENBQUM7b0JBQzVELENBQUMsQ0FBQyxRQUFRLENBQUM7Z0JBRWIsSUFBSSxZQUFZLENBQUMsa0JBQWtCLEVBQUUsWUFBWSxFQUFFLENBQUM7b0JBQ2xELGtCQUFrQjt3QkFDaEIsUUFBUSxDQUFDLFlBQVksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLENBQUMsQ0FBQztnQkFDM0QsQ0FBQztZQUNILENBQUM7UUFDSCxDQUFDO1FBQ0QsTUFBTSxJQUFBLGVBQU8sRUFBQyxLQUFLLEVBQUUsU0FBUyxFQUFFLElBQUksRUFBRSxrQkFBa0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUNsRSxDQUFDO0lBQUMsT0FBTyxDQUFNLEVBQUUsQ0FBQztRQUNoQixNQUFNLElBQUEsZUFBTyxFQUNYLEtBQUssRUFDTCxRQUFRLEVBQ1IsQ0FBQyxDQUFDLE9BQU8sSUFBSSxnQkFBZ0IsRUFDN0IsT0FBTyxDQUFDLGFBQWEsRUFDckIsRUFBRSxDQUNILENBQUM7SUFDSixDQUFDO0FBQ0gsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG5Db3B5cmlnaHQgQW1hem9uLmNvbSwgSW5jLiBvciBpdHMgYWZmaWxpYXRlcy4gQWxsIFJpZ2h0cyBSZXNlcnZlZC5cblNQRFgtTGljZW5zZS1JZGVudGlmaWVyOiBBcGFjaGUtMi4wXG5cblRoaXMgY3VzdG9tIHJlc291cmNlIGxhbWJkYSBpcyBoZWF2aWx5IGluc3BpcmVkIG9uIHRoZSBBd3NDdXN0b21SZXNvdXJjZSBsYW1iZGEgaW1wbGVtZW50YXRpb24gKHNlZTogaHR0cHM6Ly9naXRodWIuY29tL2F3cy9hd3MtY2RrL2Jsb2IvbWFpbi9wYWNrYWdlcy8lNDBhd3MtY2RrL2N1c3RvbS1yZXNvdXJjZS1oYW5kbGVycy9saWIvY3VzdG9tLXJlc291cmNlcy9hd3MtY3VzdG9tLXJlc291cmNlLWhhbmRsZXIvaW5kZXgudHMpXG4qL1xuXG4vKiBlc2xpbnQtZGlzYWJsZSBpbXBvcnQvbm8tZXh0cmFuZW91cy1kZXBlbmRlbmNpZXMgKi9cbi8vICAgICAgIEdldCBhIGxvb2sgYXQgdGhpczogaHR0cHM6Ly9yZXBvc3QuYXdzL2tub3dsZWRnZS1jZW50ZXIvY2xvdWRmb3JtYXRpb24tbGFtYmRhLXJlc291cmNlLWRlbGV0ZVxuXG5pbXBvcnQgdHlwZSAqIGFzIEFXU0xhbWJkYSBmcm9tIFwiYXdzLWxhbWJkYVwiO1xuaW1wb3J0IHsgcmVwbGFjZUR5bmFtaWNSZWZlcmVuY2VzIH0gZnJvbSBcIi4vZHluYW1pYy1yZWZlcmVuY2VzXCI7XG5pbXBvcnQgeyByZXF1ZXN0IH0gZnJvbSBcIi4vcmFiYml0bXEtbWFuYWdlbWVudC1hcGlcIjtcbmltcG9ydCB0eXBlIHsgUmFiYml0QXBpQ2FsbCB9IGZyb20gXCIuL3R5cGVzXCI7XG5pbXBvcnQge1xuICByZXNwb25kLFxuICBkZWNvZGVDYWxsLFxuICBmbGF0dGVuT2JqLFxuICBmaWx0ZXJLZXlzLFxuICBzdGFydHNXaXRoT25lT2YsXG59IGZyb20gXCIuL3V0aWxzXCI7XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBoYW5kbGVyKFxuICBldmVudDogQVdTTGFtYmRhLkNsb3VkRm9ybWF0aW9uQ3VzdG9tUmVzb3VyY2VFdmVudCxcbiAgY29udGV4dDogQVdTTGFtYmRhLkNvbnRleHQsXG4pIHtcbiAgdHJ5IHtcbiAgICBldmVudC5SZXNvdXJjZVByb3BlcnRpZXNbZXZlbnQuUmVxdWVzdFR5cGVdID1cbiAgICAgIGF3YWl0IHJlcGxhY2VEeW5hbWljUmVmZXJlbmNlcyhcbiAgICAgICAgZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzW2V2ZW50LlJlcXVlc3RUeXBlXSxcbiAgICAgICk7XG5cbiAgICBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuQ3JlYXRlID0gZGVjb2RlQ2FsbChcbiAgICAgIGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5DcmVhdGUsXG4gICAgKTtcbiAgICBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuVXBkYXRlID0gZGVjb2RlQ2FsbChcbiAgICAgIGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5VcGRhdGUsXG4gICAgKTtcbiAgICBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRGVsZXRlID0gZGVjb2RlQ2FsbChcbiAgICAgIGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5EZWxldGUsXG4gICAgKTtcblxuICAgIGxldCBwaHlzaWNhbFJlc291cmNlSWQ6IHN0cmluZztcbiAgICBzd2l0Y2ggKGV2ZW50LlJlcXVlc3RUeXBlKSB7XG4gICAgICBjYXNlIFwiQ3JlYXRlXCI6XG4gICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZCA9XG4gICAgICAgICAgZXZlbnQuUmVzb3VyY2VQcm9wZXJ0aWVzLkNyZWF0ZT8ucGh5c2ljYWxSZXNvdXJjZUlkPy5pZCA/P1xuICAgICAgICAgIGV2ZW50LlJlc291cmNlUHJvcGVydGllcy5VcGRhdGU/LnBoeXNpY2FsUmVzb3VyY2VJZD8uaWQgPz9cbiAgICAgICAgICBldmVudC5SZXNvdXJjZVByb3BlcnRpZXMuRGVsZXRlPy5waHlzaWNhbFJlc291cmNlSWQ/LmlkID8/XG4gICAgICAgICAgZXZlbnQuTG9naWNhbFJlc291cmNlSWQ7XG4gICAgICAgIGJyZWFrO1xuICAgICAgY2FzZSBcIlVwZGF0ZVwiOlxuICAgICAgY2FzZSBcIkRlbGV0ZVwiOlxuICAgICAgICBwaHlzaWNhbFJlc291cmNlSWQgPVxuICAgICAgICAgIGV2ZW50LlJlc291cmNlUHJvcGVydGllc1tldmVudC5SZXF1ZXN0VHlwZV0/LnBoeXNpY2FsUmVzb3VyY2VJZD8uaWQgPz9cbiAgICAgICAgICBldmVudC5QaHlzaWNhbFJlc291cmNlSWQ7XG4gICAgICAgIGJyZWFrO1xuICAgIH1cblxuICAgIGxldCBkYXRhOiBhbnkgPSB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBhcGlDYWxsUHJvcHMgPSBldmVudC5SZXNvdXJjZVByb3BlcnRpZXNbZXZlbnQuUmVxdWVzdFR5cGVdO1xuXG4gICAgaWYgKGFwaUNhbGxQcm9wcyAhPT0gdW5kZWZpbmVkKSB7XG4gICAgICBjb25zdCB7IFVybDogdXJsLCBDcmVkZW50aWFsczogY3JlZGVudGlhbHMgfSA9IGV2ZW50LlJlc291cmNlUHJvcGVydGllcztcblxuICAgICAgY29uc3Qgb3B0aW9uczogUmFiYml0QXBpQ2FsbCA9IHtcbiAgICAgICAgdXJsLFxuICAgICAgICBjcmVkZW50aWFscyxcbiAgICAgICAgLi4uYXBpQ2FsbFByb3BzLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmVzcG9uc2UgPSBhd2FpdCByZXF1ZXN0KG9wdGlvbnMpO1xuXG4gICAgICBpZiAocmVzcG9uc2UpIHtcbiAgICAgICAgY29uc3QgZmxhdERhdGEgPSBmbGF0dGVuT2JqKHJlc3BvbnNlKTtcblxuICAgICAgICBkYXRhID0gb3B0aW9ucy5vdXRwdXRQYXRoc1xuICAgICAgICAgID8gZmlsdGVyS2V5cyhmbGF0RGF0YSwgc3RhcnRzV2l0aE9uZU9mKG9wdGlvbnMub3V0cHV0UGF0aHMpKVxuICAgICAgICAgIDogZmxhdERhdGE7XG5cbiAgICAgICAgaWYgKGFwaUNhbGxQcm9wcy5waHlzaWNhbFJlc291cmNlSWQ/LnJlc3BvbnNlUGF0aCkge1xuICAgICAgICAgIHBoeXNpY2FsUmVzb3VyY2VJZCA9XG4gICAgICAgICAgICBmbGF0RGF0YVthcGlDYWxsUHJvcHMucGh5c2ljYWxSZXNvdXJjZUlkLnJlc3BvbnNlUGF0aF07XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICB9XG4gICAgYXdhaXQgcmVzcG9uZChldmVudCwgXCJTVUNDRVNTXCIsIFwiT0tcIiwgcGh5c2ljYWxSZXNvdXJjZUlkLCBkYXRhKTtcbiAgfSBjYXRjaCAoZTogYW55KSB7XG4gICAgYXdhaXQgcmVzcG9uZChcbiAgICAgIGV2ZW50LFxuICAgICAgXCJGQUlMRURcIixcbiAgICAgIGUubWVzc2FnZSB8fCBcIkludGVybmFsIEVycm9yXCIsXG4gICAgICBjb250ZXh0LmxvZ1N0cmVhbU5hbWUsXG4gICAgICB7fSxcbiAgICApO1xuICB9XG59XG4iXX0=