aws-cdk-lib
Version:
Version 2 of the AWS Cloud Development Kit library
78 lines (77 loc) • 3.54 kB
TypeScript
import { Construct, Node } from 'constructs';
import * as cloudwatch from '../../../aws-cloudwatch';
import * as ec2 from '../../../aws-ec2';
import * as iam from '../../../aws-iam';
import * as lambda from '../../../aws-lambda';
import { Resource } from '../../../core';
/**
* Properties for creating a Lambda@Edge function
*/
export interface EdgeFunctionProps extends lambda.FunctionProps {
/**
* The stack ID of Lambda@Edge function.
*
* @default - `edge-lambda-stack-${region}`
*/
readonly stackId?: string;
}
/**
* A Lambda@Edge function.
*
* Convenience resource for requesting a Lambda function in the 'us-east-1' region for use with Lambda@Edge.
* Implements several restrictions enforced by Lambda@Edge.
*
* Note that this construct requires that the 'us-east-1' region has been bootstrapped.
* See https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html or 'cdk bootstrap --help' for options.
*
* @resource AWS::Lambda::Function
*/
export declare class EdgeFunction extends Resource implements lambda.IVersion {
private static readonly EDGE_REGION;
readonly edgeArn: string;
readonly functionName: string;
readonly functionArn: string;
readonly grantPrincipal: iam.IPrincipal;
readonly isBoundToVpc = false;
readonly permissionsNode: Node;
readonly role?: iam.IRole;
readonly version: string;
readonly architecture: lambda.Architecture;
readonly resourceArnsForGrantInvoke: string[];
private readonly _edgeFunction;
constructor(scope: Construct, id: string, props: EdgeFunctionProps);
get lambda(): lambda.IFunction;
/**
* Convenience method to make `EdgeFunction` conform to the same interface as `Function`.
*/
get currentVersion(): lambda.IVersion;
addAlias(aliasName: string, options?: lambda.AliasOptions): lambda.Alias;
/**
* Not supported. Connections are only applicable to VPC-enabled functions.
*/
get connections(): ec2.Connections;
get latestVersion(): lambda.IVersion;
addEventSourceMapping(id: string, options: lambda.EventSourceMappingOptions): lambda.EventSourceMapping;
addPermission(id: string, permission: lambda.Permission): void;
addToRolePolicy(statement: iam.PolicyStatement): void;
grantInvoke(identity: iam.IGrantable): iam.Grant;
grantInvokeLatestVersion(identity: iam.IGrantable): iam.Grant;
grantInvokeVersion(identity: iam.IGrantable, version: lambda.IVersion): iam.Grant;
grantInvokeUrl(identity: iam.IGrantable): iam.Grant;
grantInvokeCompositePrincipal(compositePrincipal: iam.CompositePrincipal): iam.Grant[];
metric(metricName: string, props?: cloudwatch.MetricOptions): cloudwatch.Metric;
metricDuration(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
metricErrors(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
metricInvocations(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
metricThrottles(props?: cloudwatch.MetricOptions): cloudwatch.Metric;
/** Adds an event source to this function. */
addEventSource(source: lambda.IEventSource): void;
configureAsyncInvoke(options: lambda.EventInvokeConfigOptions): void;
addFunctionUrl(options?: lambda.FunctionUrlOptions): lambda.FunctionUrl;
/** Create a function in-region */
private createInRegionFunction;
/** Create a support stack and function in us-east-1, and a SSM reader in-region */
private createCrossRegionFunction;
private createCrossRegionArnReader;
private edgeStack;
}