Skip to content

Instantly share code, notes, and snippets.

@cagdas1
Created February 20, 2020 19:34
Show Gist options
  • Save cagdas1/ada0b8c37b56b22f60b8d53c8f96916a to your computer and use it in GitHub Desktop.
Save cagdas1/ada0b8c37b56b22f60b8d53c8f96916a to your computer and use it in GitHub Desktop.
const cdk = require("@aws-cdk/core");
const lambda = require("@aws-cdk/aws-lambda");
const events = require("@aws-cdk/aws-events");
const targets = require("@aws-cdk/aws-events-targets");
const iam = require("@aws-cdk/aws-iam");
require('dotenv').config();
class CallServiceStack extends cdk.Stack {
constructor(scope, id, props) {
super(scope, id, props);
const callServiceFunction = new lambda.Function(this, "call-service-function", {
functionName: "callService",
runtime: lambda.Runtime.NODEJS_12_X,
code: new lambda.AssetCode("src"),
handler: "callService.handler",
timeout: cdk.Duration.seconds(60),
environment: {
REGION: process.env.AWS_REGION,
DESTINATION_PHONE_NUMBER: process.env.DESTINATION_PHONE_NUMBER,
ORIGIN_PHONE_NUMBER: process.env.ORIGIN_PHONE_NUMBER,
LANGUAGE_CODE: process.env.LANGUAGE_CODE,
VOICE_ID: process.env.VOICE_ID,
CALL_TEXT: process.env.CALL_TEXT
},
initialPolicy: [
new iam.PolicyStatement({
resources: [ "*" ],
actions: [
'sms-voice:SendVoiceMessage',
]
})
]
});
const rule = new events.Rule(this, 'Rule', {
schedule: events.Schedule.expression(process.env.CRON_EXPRESSION)
});
rule.addTarget(new targets.LambdaFunction(callServiceFunction));
}
}
const app = new cdk.App();
const callServiceStack = new CallServiceStack(app, 'CallServiceStack', {
env: {
region: process.env.AWS_REGION,
account: process.env.ACCOUNT_ID
}
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment