Skip to main content

用于定义 API 网关和 Lambda 函数之间交互的 CDK 构造。

项目描述

aws-apigateway-lambda 模块

---

稳定性:稳定


参考文档 https://docs.aws.amazon.com/solutions/latest/constructs/
包裹
蟒蛇标志Python 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. 或其附属公司。版权所有。

项目详情


发布历史 发布通知| RSS订阅

1.162.0