export function sendCloudFormationResponse()

in source/aws-connect-vm-serverless/src/lib/custom-resource-util.js [29:78]


export function sendCloudFormationResponse(event, context, responseStatus, physicalResourceId, responseData = {}, noEcho = false) {
    return new Promise((resolve, reject) => {
        let reason = "";
        if (responseStatus === 'FAILED') {
            reason = `See details in CloudWatch Stream ${context.logStreamName}`;
        }

        let responseBody = JSON.stringify({
            Status: responseStatus,
            Reason: reason,
            PhysicalResourceId: physicalResourceId || context.logStreamName,
            StackId: event.StackId,
            RequestId: event.RequestId,
            LogicalResourceId: event.LogicalResourceId,
            NoEcho: noEcho,
            Data: responseData
        });

        let https = require('https');
        let url = require('url');
        let parsedUrl = url.parse(event.ResponseURL);
        let options = {
            hostname: parsedUrl.hostname,
            port: 443,
            path: parsedUrl.path,
            method: "PUT",
            headers: {
                "content-type": "",
                "content-length": responseBody.length
            }
        };

        let request = https.request(options, (response) => {
            resolve({
                statusCode: response.statusCode,
                statusMessage: response.statusMessage
            });
        });

        request.on("error", (error) => {
            console.log(JSON.stringify(error, null, 2));
            reject("send(..) failed executing https.request(..): " + error);
        });

        request.write(responseBody);
        request.end();
    });


}