AWS Lambda Function to check Endpoints Connectivity

JS
S
JavaScript

Simple NodeJS Snippet to check the connectivity over a string of endpoints. Please set the list of endpoints as an environment variable. export ENDPOINTS="https://coderecipes.org,https://www.coderecipes.org" Then, zip the file: zip -r archive_name.zip .

1"use strict";
2const async = require('async');
3const request = require('request');
4const timeout = 2500; // ms to wait for response
5// ignore invalid SSL certificate
6process.env.NODE_TLS_REJECT_UNAUTHORIZED = "0";
7
8function httpGet(url, cb) {
9    const options = {
10        url: url,        
11        timeout: timeout
12    };
13    request(options,
14        function (err, res, body) {
15            if (err) {
16                console.log('Error: ' + err, url);
17                cb(url);
18            }
19            else if (res.statusCode !== 200 && res.statusCode !== 405) {
20                console.log('Status Code: ' + res.statusCode, url);
21                cb(url);                    
22            }
23            else {
24                console.log('Status Code: 200', url);
25                cb(null);
26            }                        
27        }
28    );
29}
30
31exports.handler = (event, context, callback) => {
32    const urls = process.env.ENDPOINTS.split(",");
33    async.map(urls, httpGet, function (err, res){
34        if (err) {
35            console.log('returning error', err);
36            callback(err);                             
37        }       
38    });    
39};

Created on 10/30/2017