11import * as cdk from '@aws-cdk/core' ;
2- import { Duration } from '@aws-cdk/core' ;
2+ import { Duration , RemovalPolicy } from '@aws-cdk/core' ;
33import { JProfByBotStackProps } from './JProfByBotStackProps' ;
4- import lambda = require( '@aws-cdk/aws-lambda' ) ;
5- import apigateway = require( '@aws-cdk/aws-apigateway' ) ;
4+ import * as dynamodb from '@aws-cdk/aws-dynamodb' ;
5+ import * as lambda from '@aws-cdk/aws-lambda' ;
6+ import * as apigateway from '@aws-cdk/aws-apigateway' ;
67
78export class JProfByBotStack extends cdk . Stack {
89 constructor ( scope : cdk . Construct , id : string , props : JProfByBotStackProps ) {
910 super ( scope , id , props ) ;
1011
12+ const votesTable = new dynamodb . Table ( this , 'jprof-by-bot-table-votes' , {
13+ tableName : 'jprof-by-bot-table-votes' ,
14+ partitionKey : { name : 'id' , type : dynamodb . AttributeType . STRING } ,
15+ billingMode : dynamodb . BillingMode . PAY_PER_REQUEST ,
16+ removalPolicy : RemovalPolicy . DESTROY ,
17+ } ) ;
18+
1119 const lambdaWebhook = new lambda . Function ( this , 'jprof-by-bot-lambda-webhook' , {
1220 functionName : 'jprof-by-bot-lambda-webhook' ,
1321 runtime : lambda . Runtime . JAVA_11 ,
@@ -17,9 +25,13 @@ export class JProfByBotStack extends cdk.Stack {
1725 handler : 'by.jprof.telegram.bot.runners.lambda.JProf' ,
1826 environment : {
1927 'LOG_THRESHOLD' : 'DEBUG' ,
28+ 'TABLE_VOTES' : votesTable . tableName ,
29+ 'TELEGRAM_BOT_TOKEN' : props . telegramToken ,
2030 } ,
2131 } ) ;
2232
33+ votesTable . grantReadWriteData ( lambdaWebhook ) ;
34+
2335 const api = new apigateway . RestApi ( this , 'jprof-by-bot-api' , {
2436 restApiName : 'jprof-by-bot-api' ,
2537 cloudWatchRole : false ,
0 commit comments