@faceteer/cdk
Version:
CDK 2.0 constructs and helpers that make composing a Lambda powered service easier.
30 lines (29 loc) • 1.28 kB
TypeScript
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>);
}