Требуете ли вы сделать фактический HTTP-вызов или вы просто хотите обработчик функции, связанный с маршрутом через определенный интервал?
В первом случае я использую запланированную лямбду AWS для вызова своего маршрута. Таким образом, вызов направляется в любой экземпляр, доступный для обработки (при условии, что среда с балансировкой нагрузки).
package.json
{
"dependencies": {
"superagent": "3.5.2"
},
"name": "webhook-caller",
"private": true,
"version": "0.0.0",
"engines": {
"node": "4.2.1"
}
}
template.yml
AWSTemplateFormatVersion: '2010-09-09'
Transform: 'AWS::Serverless-2016-10-31'
Description: Calls a URL when triggered
Resources:
webhookcaller:
Type: 'AWS::Serverless::Function'
Properties:
Handler: index.handler
Runtime: nodejs6.10
CodeUri: .
Description: Calls a URL when triggered
MemorySize: 128
Timeout: 60
Role: !<tag:yaml.org,2002:js/undefined> ''
index.js
'use strict';
var request = require( 'superagent' );
exports.handler = ( event, context ) => {
console.log( "Calling GET " + process.env.URL );
request
.post( process.env.URL )
.end( function ( err, res ) {
if ( err != null ) {
console.error( "Error calling GET " + process.env.URL );
console.error( err );
} else {
if ( res.status == 200 ) {
console.log( "Return code: " + res.status );
} else {
console.error( "Return code: " + res.status );
}
}
} );
};
В противном случае просто используйте простой таймер JavaScript: https://nodejs.org/en/docs/guides/timers-in-node/