in amazon-msk-java-app-cdk/lib/lambda-stack.ts [27:60]
constructor(vpcStack: VpcStack, kafkaStack: KafkaStack, scope: cdk.Construct, id: string, props?: cdk.StackProps) {
super(scope, id, props);
let bootstrapAddress = new CfnParameter(this, "bootstrapAddress", {
type: "String",
description: "Bootstrap address for Kafka broker. Corresponds to bootstrap.servers Kafka consumer configuration"
});
let topicName = new CfnParameter(this, "topicName", {
type: "String",
description: "Kafka topic name"
});
let transactionHandler = new NodejsFunction(this, "TransactionHandler", {
runtime: Runtime.NODEJS_14_X,
entry: 'lambda/transaction-handler.ts',
handler: 'handler',
vpc: vpcStack.vpc,
securityGroups: [vpcStack.lambdaSecurityGroup],
functionName: 'TransactionHandler',
timeout: Duration.minutes(5),
environment: {
'BOOTSTRAP_ADDRESS': bootstrapAddress.valueAsString,
'TOPIC_NAME': topicName.valueAsString
}
});
transactionHandler.addToRolePolicy(new PolicyStatement({
effect: Effect.ALLOW,
actions: ['kafka:*'],
resources: [kafkaStack.kafkaCluster.ref]
}));
}