UNPKG

aws-crons

Version:

A simple wrapper for creating cron jobs using scheduled tasks in AWS.

3 lines (2 loc) 1.64 kB
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@aws-cdk/aws-events-targets"),r=require("@aws-cdk/aws-lambda"),n=require("@aws-cdk/aws-events"),t=require("@aws-cdk/aws-ecs"),o=require("@aws-cdk/core"),a=require("@aws-cdk/aws-ecs-patterns"),s=require("@aws-cdk/aws-logs");function i(){return(i=Object.assign||function(e){for(var r=1;r<arguments.length;r++){var n=arguments[r];for(var t in n)Object.prototype.hasOwnProperty.call(n,t)&&(e[t]=n[t])}return e}).apply(this,arguments)}var c=function(e,r,n){return new s.LogGroup(e,r,n)};exports.createFargateCron=function(e){var r,n=e.stack,s=e.cluster,u=e.id,l=e.schedule,d=e.containerOptions,w=e.efsVolume,g=e.mountPoint,p=(r={streamPrefix:u,logGroup:c(n,u+"_logs",{logGroupName:u+"_logs",removalPolicy:o.RemovalPolicy.SNAPSHOT})},new t.AwsLogDriver(r)),m=new t.FargateTaskDefinition(n,u+"_task",{});if(w&&(m.addVolume(i({},w)),!g))throw new Error("You must specify mount points for your EFS volume. \n mointPoints missing while efsVolume present");var v=m.addContainer(u+"_container",i({logging:p},d));return g&&v.addMountPoints(i({},g)),function(e,r,n){return new a.ScheduledFargateTask(e,r,n)}(n,u+"_cron",{cluster:s,scheduledFargateTaskDefinitionOptions:{taskDefinition:m},schedule:l})},exports.createLambdaCron=function(t){var o=t.stack,a=t.vpc,s=t.id,c=t.lambdaProps,u=t.eventRuleProps;try{var l=new r.Function(o,s,i({vpc:a},c));new n.Rule(o,s+"_rule",i({},u)).addTarget(new e.LambdaFunction(l))}catch(e){throw console.error(e),new Error("Something went wrong while creating lambda cron...")}}; //# sourceMappingURL=aws-crons.cjs.production.min.js.map