UNPKG

@faceteer/cdk

Version:

CDK 2.0 constructs and helpers that make composing a Lambda powered service easier.

30 lines (29 loc) 1.28 kB
import * as cdk from 'aws-cdk-lib'; import * as iam from 'aws-cdk-lib/aws-iam'; import * as lambdaNodeJs from 'aws-cdk-lib/aws-lambda-nodejs'; import * as lambda from 'aws-cdk-lib/aws-lambda'; import { Construct } from 'constructs'; import type { FullHandlerDefinition } from '../extract/extract-handlers'; import { LambdaServiceProps } from './lambda-service'; import { ISecurityGroup, IVpc, SubnetSelection } from 'aws-cdk-lib/aws-ec2'; import { HandlerDefinition } from '../handlers/handler'; export interface BaseFunctionProps<T extends HandlerDefinition> { role: iam.IRole; definition: FullHandlerDefinition<T>; bundlingOptions?: lambdaNodeJs.BundlingOptions; layers?: lambda.ILayerVersion[]; defaults?: LambdaServiceProps['defaults']; network?: { vpc: IVpc; vpcSubnets?: SubnetSelection; securityGroups?: ISecurityGroup[]; }; environment?: { [key: string]: string; }; } export declare class BaseFunction<T extends HandlerDefinition> extends lambdaNodeJs.NodejsFunction { readonly definition: FullHandlerDefinition<T>; readonly timeout: cdk.Duration; constructor(scope: Construct, id: string, { role, definition, bundlingOptions, layers, defaults, network, environment, }: BaseFunctionProps<T>); }