UNPKG

@kumologica/builder

Version:
74 lines (63 loc) 1.74 kB
function trigger(params) { let templateResources = {}; const name = "Event" + (params.name || process.hrtime.bigint()); // only default event bus supports cron, no need to pass bus name /*templateResources[name] = { Type : "AWS::Events::Rule", Properties : { ScheduleExpression: params.expression, Name: name, Targets : [ { Id: kumohubListenerId, Arn : { "Fn::GetAtt": ["Lambda", "Arn"] }, Input : `{"type": "kumohub-event", "id": "${kumohubListenerId}"}` } ] } }*/ let input; if (params.reference) { input = `{"source": "kumologica", "detail": {"type": "kumologica-event", "reference": "${params.reference}"}}`; }; templateResources[name] = { Type : "AWS::Events::Rule", Properties : { ScheduleExpression: params.expression, Name: name, State: params.state, Targets : [ { Id: name, Arn : { "Fn::GetAtt": ["Lambda", "Arn"] }, Input: input } ] } } if (params.reference) { templateResources[name].Properties.EventPattern = { "detail": { "type": ["kumologica-event"], "reference": [params.reference] } } } templateResources["Permissions" + name] = { Type: "AWS::Lambda::Permission", Properties: { FunctionName: { "Ref": "Lambda" }, Action: "lambda:InvokeFunction", Principal: "events.amazonaws.com", SourceArn: { "Fn::GetAtt": [name, "Arn"] } } } return templateResources; } module.exports = { trigger }