用于定义 API 网关和 Lambda 函数之间交互的 CDK 构造。
项目描述
aws-apigateway-lambda 模块
---| 参考文档: | https://docs.aws.amazon.com/solutions/latest/constructs/ |
|---|
| 语 | 包裹 |
|---|---|
aws_solutions_constructs.aws_apigateway_lambda |
|
@aws-solutions-constructs/aws-apigateway-lambda |
|
software.amazon.awsconstructs.services.apigatewaylambda |
概述
此 AWS Solutions Construct 实现了一个连接到 AWS Lambda 函数模式的 Amazon API Gateway REST API。
这是一个最小的可部署模式定义:
打字稿
import { Construct } from 'constructs';
import { Stack, StackProps } from 'aws-cdk-lib';
import { ApiGatewayToLambda } from '@aws-solutions-constructs/aws-apigateway-lambda';
import * as lambda from 'aws-cdk-lib/aws-lambda';
new ApiGatewayToLambda(this, 'ApiGatewayToLambdaPattern', {
lambdaFunctionProps: {
runtime: lambda.Runtime.NODEJS_14_X,
handler: 'index.handler',
code: lambda.Code.fromAsset(`lambda`)
}
});
Python
from aws_solutions_constructs.aws_apigateway_lambda import ApiGatewayToLambda
from aws_cdk import (
aws_lambda as _lambda,
Stack
)
from constructs import Construct
ApiGatewayToLambda(self, 'ApiGatewayToLambdaPattern',
lambda_function_props=_lambda.FunctionProps(
runtime=_lambda.Runtime.PYTHON_3_9,
handler='index.handler',
code=_lambda.Code.from_asset('lambda')
)
)
爪哇
import software.constructs.Construct;
import software.amazon.awscdk.Stack;
import software.amazon.awscdk.StackProps;
import software.amazon.awscdk.services.lambda.*;
import software.amazon.awscdk.services.lambda.Runtime;
import software.amazon.awsconstructs.services.apigatewaylambda.*;
new ApiGatewayToLambda(this, "ApiGatewayToLambdaPattern", new ApiGatewayToLambdaProps.Builder()
.lambdaFunctionProps(new FunctionProps.Builder()
.runtime(Runtime.NODEJS_14_X)
.code(Code.fromAsset("lambda"))
.handler("index.handler")
.build())
.build());
模式构造道具
| 姓名 | 类型 | 描述 |
|---|---|---|
| 现有的LambdaObj? | lambda.Function |
现有的 Lambda 函数对象实例,同时提供 this 并lambdaFunctionProps会导致错误。 |
| lambdaFunctionProps? | lambda.FunctionProps |
用户提供的道具来覆盖 Lambda 函数的默认道具。 |
| apiGatewayProps? | api.LambdaRestApiProps |
可选的用户提供的道具来覆盖 API 的默认道具。 |
| logGroupProps? | logs.LogGroupProps |
用户提供的道具来覆盖 CloudWatchLogs 日志组的默认道具。 |
模式属性
| 姓名 | 类型 | 描述 |
|---|---|---|
| lambda函数 | lambda.Function |
返回由模式创建的 Lambda 函数的实例。 |
| api网关 | api.LambdaRestApi |
返回由模式创建的 API Gateway REST API 的一个实例。 |
| apiGatewayCloudWatch 角色? | iam.Role |
返回由 API Gateway 构造创建的 iam.Role 实例,用于 CloudWatch 访问。 |
| apiGatewayLogGroup | logs.LogGroup |
返回由构造创建的 LogGroup 实例,用于将 API 网关访问日志记录到 CloudWatch。 |
默认设置
没有任何覆盖的 Construct 的开箱即用实现将设置以下默认值:
亚马逊 API 网关
- 部署边缘优化的 API 端点
- 为 API Gateway 启用 CloudWatch 日志记录
- 为 API Gateway 配置最低权限访问 IAM 角色
- 将所有 API 方法的默认授权类型设置为 IAM
- 启用 X 射线追踪
AWS Lambda 函数
-
为 Lambda 函数配置有限权限访问 IAM 角色
-
通过 Keep-Alive for NodeJs Lambda 函数启用重用连接
-
启用 X 射线追踪
-
设置环境变量
- AWS_NODEJS_CONNECTION_REUSE_ENABLED(适用于 Node 10.x 及更高版本的功能)
建筑学
© 版权所有 2022 Amazon.com, Inc. 或其附属公司。版权所有。