exports.send = function()

in apps/real-time-collaboration/server/AppInstanceLambda/cfn-response.js [7:52]


exports.send = function (event, context, responseStatus, responseData, physicalResourceId, noEcho) {

  return new Promise((resolve, reject) => {
    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,
      }
    };

    const request = https.request(options, function (response) {
      console.log('Status code: ' + response.statusCode);
      console.log('Status message: ' + response.statusMessage);
      resolve(context.done());
    });

    request.on('error', function (error) {
      console.log('send(..) failed executing https.request(..): ' + error);
      reject(context.done(error));
    });

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