UNPKG

@vissree_s/cfn-response-async

Version:

A module for managing lambda-funciton backed custom resources in AWS CloudFormation with async support

52 lines (46 loc) 1.21 kB
exports.SUCCESS = "SUCCESS"; exports.FAILED = "FAILED"; exports.send = async function ( event, context, responseStatus, responseData, physicalResourceId, noEcho ) { const responseBody = JSON.stringify({ Status: responseStatus, Reason: "See the details in CloudWatch Log Stream: " + context.logStreamName, PhysicalResourceId: physicalResourceId || context.logStreamName, StackId: event.StackId, RequestId: event.RequestId, LogicalResourceId: event.LogicalResourceId, NoEcho: noEcho || false, Data: responseData, }); console.log("Response body:\n", responseBody); const https = require("https"); const url = require("url"); const parsedUrl = url.parse(event.ResponseURL); const options = { hostname: parsedUrl.hostname, port: 443, path: parsedUrl.path, method: "PUT", headers: { "content-type": "", "content-length": responseBody.length, }, }; return new Promise((resolve, reject) => { const request = https.request(options, function (res) { resolve(res); }); request.on("error", function (err) { reject(err); }); request.write(responseBody); request.end(); }); };