# @aws-cdk/aws-apigatewayv2-integrations 中文文档

规范地址：https://npmcn.com/package/%40aws-cdk/aws-apigatewayv2-integrations/

版本：1\.204\.0
npm 元数据更新时间：2023-11-21T10:13:50.985Z
中文译文更新时间：2026-11-07T14:55:27.535Z
软件包许可：Apache-2\.0

本文由上游 README 翻译，可能存在偏差，请结合原文核对 API、命令与配置。版权与许可归原作者所有。

原始 npm 页面：https://www.npmjs.com/package/%40aws-cdk/aws-apigatewayv2-integrations
原文对照：https://npmcn.com/package/%40aws-cdk/aws-apigatewayv2-integrations/?lang=original
项目主页：https://github.com/aws/aws-cdk
源码仓库：https://github.com/aws/aws-cdk

弃用说明：AWS CDK v1 has reached End-of-Support on 2023-06-01\. This package is no longer being updated, and users should migrate to AWS CDK v2\. For more information on how to migrate, see https://docs\.aws\.amazon\.com/cdk/v2/guide/migrating-v2\.html

## 关键信息（来自 npm 元数据）

- 包体积（解压后）：270 kB，33 个文件
- 模块格式：CommonJS
- TypeScript 类型：包内自带
- Node.js 要求：\>= 14\.15\.0
- 运行依赖：8 个
- peer 依赖：@aws-cdk/aws-apigatewayv2 1\.204\.0，@aws-cdk/aws-ec2 1\.204\.0，@aws-cdk/aws-elasticloadbalancingv2 1\.204\.0，@aws-cdk/aws-iam 1\.204\.0，@aws-cdk/aws-lambda 1\.204\.0，@aws-cdk/aws-servicediscovery 1\.204\.0，@aws-cdk/core 1\.204\.0，constructs ^3\.3\.69
- 首次发布：2020-11-06T05:46:19.691Z
- 最新版本发布：2023-06-19T21:10:07.891Z
- 近 30 天下载量：12703（2026-10-07 至 2026-11-05，npm 官方下载统计）
- 已发布版本数：152（近 12 个月 0 个）

## 中文简介

AWS APIGateway V2 集成系统

## 安装

```sh
npm install @aws-cdk/aws-apigatewayv2-integrations
```

也可以使用：`pnpm add @aws-cdk/aws-apigatewayv2-integrations`、`yarn add @aws-cdk/aws-apigatewayv2-integrations`、`bun add @aws-cdk/aws-apigatewayv2-integrations`

## README

# AWS APIGatewayv2 集成

* * *

![End-of-Support](https://img.shields.io/badge/End--of--Support-critical.svg?style=for-the-badge)

> AWS CDK v1在2023-06-01上达到了支持结束. 此软件包不再更新,用户应该迁移到 AWS CDK v2.
> 
> 关于如何移徙的更多信息,请参见: [_移动到 AWS CDK v2_ 指南](https://docs.aws.amazon.com/cdk/v2/guide/migrating-v2.html)。 。 。 .

* * *

## 目录

-   [HTTP API 软件](https://npmcn.com/package/%40aws-cdk/aws-apigatewayv2-integrations/#readme-http-apis)
    -   [Lambda一体化组织](https://npmcn.com/package/%40aws-cdk/aws-apigatewayv2-integrations/#readme-lambda)
    -   [HTTP 代理集成](https://npmcn.com/package/%40aws-cdk/aws-apigatewayv2-integrations/#readme-http-proxy)
    -   [私营一体化](https://npmcn.com/package/%40aws-cdk/aws-apigatewayv2-integrations/#readme-private-integration)
    -   [请求参数](https://npmcn.com/package/%40aws-cdk/aws-apigatewayv2-integrations/#readme-request-parameters)
-   [网络锁定 APIs](https://npmcn.com/package/%40aws-cdk/aws-apigatewayv2-integrations/#readme-websocket-apis)
    -   [Lambda WebSocket 集成系统](https://npmcn.com/package/%40aws-cdk/aws-apigatewayv2-integrations/#readme-lambda-websocket-integration)

## HTTP API 软件

整合连接到后端资源的路由. HTTP APIs支持Lambda代理,AWS服务,以及HTTP代理集成. HTTP代理集成也被称为私人集成.

### 兰布达

Lambda集成可以将HTTP API路由与Lambda功能相融合. 当客户援引路线时 API Gateway服务将请求转发到Lambda函数,并返回该函数对客户端的响应.

API Gateway服务将引用有特定格式的事件有效载荷的lambda函数。 服务预期 以特定格式响应的函数。 有关该格式的详情,请访问 [与AWS Lambda合作 代理集成](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-lambda.html)。 。 。 .

以下代码配置一个路由 `GET /books` 一个Lambda代理集成.

```ts
import { HttpLambdaIntegration } from '@aws-cdk/aws-apigatewayv2-integrations';

declare const booksDefaultFn: lambda.Function;
const booksIntegration = new HttpLambdaIntegration('BooksIntegration', booksDefaultFn);

const httpApi = new apigwv2.HttpApi(this, 'HttpApi');

httpApi.addRoutes({
  path: '/books',
  methods: [ apigwv2.HttpMethod.GET ],
  integration: booksIntegration,
});
```

### HTTP 代理服务器

HTTP代理集成使得一个HTTP API路由能够连接到一个公开的routable HTTP端点. 当客户端 引用路由, API Gateway 服务在 API Gateway 端口之间转发整个请求和响应 和整合 HTTP 端点。 更多信息可在 [使用 HTTP 代理服务器 整合](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-develop-integrations-http.html)。 。 。 .

以下代码配置一个路由 `GET /books` 将 HTTP 代理集成到 HTTP 端点 `get-books-proxy.myproxy.internal`。 。 。 .

```ts
import { HttpUrlIntegration } from '@aws-cdk/aws-apigatewayv2-integrations';

const booksIntegration = new HttpUrlIntegration('BooksIntegration', 'https://get-books-proxy.myproxy.internal');

const httpApi = new apigwv2.HttpApi(this, 'HttpApi');

httpApi.addRoutes({
  path: '/books',
  methods: [ apigwv2.HttpMethod.GET ],
  integration: booksIntegration,
});
```

### 私营一体化

私有集成可以将 HTTP API 路由与私有资源整合到 VPC 中,例如应用程序负载平衡器或 亚马逊ECS容器应用. 利用私人集成,VPC中的资源可以被曝出,供 在VPC以外的客户.

支持将以下整合纳入一项自愿参与方案,用于私人资源.

#### 应用程序负载平衡器

以下代码是HTTP API的基本应用程序负载平衡器的私人集成:

```ts
import { HttpAlbIntegration } from '@aws-cdk/aws-apigatewayv2-integrations';

const vpc = new ec2.Vpc(this, 'VPC');
const lb = new elbv2.ApplicationLoadBalancer(this, 'lb', { vpc });
const listener = lb.addListener('listener', { port: 80 });
listener.addTargets('target', {
  port: 80,
});

const httpEndpoint = new apigwv2.HttpApi(this, 'HttpProxyPrivateApi', {
  defaultIntegration: new HttpAlbIntegration('DefaultIntegration', listener),
});
```

当使用导入的负载平衡器时 `vpc` 选项必须指定 `HttpAlbIntegration`。 。 。 .

#### 网络负载平衡器

以下代码是 HTTP API 的基本网络负载平衡器私人集成:

```ts
import { HttpNlbIntegration } from '@aws-cdk/aws-apigatewayv2-integrations';

const vpc = new ec2.Vpc(this, 'VPC');
const lb = new elbv2.NetworkLoadBalancer(this, 'lb', { vpc });
const listener = lb.addListener('listener', { port: 80 });
listener.addTargets('target', {
  port: 80,
});

const httpEndpoint = new apigwv2.HttpApi(this, 'HttpProxyPrivateApi', {
  defaultIntegration: new HttpNlbIntegration('DefaultIntegration', listener),
});
```

当使用导入的负载平衡器时 `vpc` 选项必须指定 `HttpNlbIntegration`。 。 。 .

#### 云图服务发现

以下代码是 HTTP API 的基本发现服务私人集成:

```ts
import * as servicediscovery from '@aws-cdk/aws-servicediscovery';
import { HttpServiceDiscoveryIntegration } from '@aws-cdk/aws-apigatewayv2-integrations';

const vpc = new ec2.Vpc(this, 'VPC');
const vpcLink = new apigwv2.VpcLink(this, 'VpcLink', { vpc });
const namespace = new servicediscovery.PrivateDnsNamespace(this, 'Namespace', {
  name: 'boobar.com',
  vpc,
});
const service = namespace.createService('Service');

const httpEndpoint = new apigwv2.HttpApi(this, 'HttpProxyPrivateApi', {
  defaultIntegration: new HttpServiceDiscoveryIntegration('DefaultIntegration', service, {
    vpcLink,
  }),
});
```

### 请求参数

请求参数映射允许客户端的API请求在达到后端集成之前被修改. 参数映射可用于指定对请求参数的修改. 见 [转换 API 请求和 答复](https://docs.aws.amazon.com/apigateway/latest/developerguide/http-api-parameter-mapping.html)。 。 。 .

以下示例创建了新标题 - `header2` - 作为副本 `header1` 并删除 `header1`。 。 。 .

```ts
import { HttpAlbIntegration } from '@aws-cdk/aws-apigatewayv2-integrations';

declare const lb: elbv2.ApplicationLoadBalancer;
const listener = lb.addListener('listener', { port: 80 });
listener.addTargets('target', {
  port: 80,
});

const httpEndpoint = new apigwv2.HttpApi(this, 'HttpProxyPrivateApi', {
  defaultIntegration: new HttpAlbIntegration('DefaultIntegration', listener, {
    parameterMapping: new apigwv2.ParameterMapping()
      .appendHeader('header2', apigwv2.MappingValue.requestHeader('header1'))
      .removeHeader('header1'),
  }),
});
```

要添加 CDK 尚未支持的映射密钥和值,请使用 `custom()` 方法 :

```ts
import { HttpAlbIntegration } from '@aws-cdk/aws-apigatewayv2-integrations';

declare const lb: elbv2.ApplicationLoadBalancer;
const listener = lb.addListener('listener', { port: 80 });
listener.addTargets('target', {
  port: 80,
});

const httpEndpoint = new apigwv2.HttpApi(this, 'HttpProxyPrivateApi', {
  defaultIntegration: new HttpAlbIntegration('DefaultIntegration', listener, {
    parameterMapping: new apigwv2.ParameterMapping().custom('myKey', 'myValue'),
  }),
});
```

## 网络锁定 APIs

WebSocket集成将一条路由连接到后端资源. CDK支持以下整合.

### Lambda WebSocket 集成系统

Lambda集成使WebSocket API路由与Lambda功能相融合成为可能. 当客户端连接/ 断开连接时 或发送特定路由的信息,API Gateway 服务将把请求转发到 Lambda 函数

API Gateway服务将引用有特定格式的事件有效载荷的lambda函数.

以下代码配置 a `sendmessage` 与Lambda集成的路线

```ts
import { WebSocketLambdaIntegration } from '@aws-cdk/aws-apigatewayv2-integrations';

const webSocketApi = new apigwv2.WebSocketApi(this, 'mywsapi');
new apigwv2.WebSocketStage(this, 'mystage', {
  webSocketApi,
  stageName: 'dev',
  autoDeploy: true,
});

declare const messageHandler: lambda.Function;
webSocketApi.addRoute('sendmessage', {
  integration: new WebSocketLambdaIntegration('SendMessageIntegration', messageHandler),
});
```

## 常见问题

### @aws-cdk/aws-apigatewayv2-integrations 是什么？

AWS APIGateway V2 集成系统注意：该包已被作者标记为弃用——AWS CDK v1 has reached End-of-Support on 2023-06-01\. This package is no longer being updated, and users should migrate to AWS CDK v2\. For more information on how to migrate, see https://docs\.aws\.amazon\.com/cdk/v2/guide/migrating-v2\.html

### 如何安装 @aws-cdk/aws-apigatewayv2-integrations？

在项目目录运行 npm install @aws-cdk/aws-apigatewayv2-integrations，或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖：@aws-cdk/aws-apigatewayv2（1\.204\.0）、@aws-cdk/aws-ec2（1\.204\.0）、@aws-cdk/aws-elasticloadbalancingv2（1\.204\.0）、@aws-cdk/aws-iam（1\.204\.0）、@aws-cdk/aws-lambda（1\.204\.0）、@aws-cdk/aws-servicediscovery（1\.204\.0）、@aws-cdk/core（1\.204\.0）、constructs（^3\.3\.69）。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖，Yarn 需要手动安装。

### @aws-cdk/aws-apigatewayv2-integrations 支持 TypeScript 吗？

支持。包内自带 TypeScript 类型声明（package\.json 声明了 types 入口），安装后即可获得类型提示，无需再安装 @types 包。

### @aws-cdk/aws-apigatewayv2-integrations 支持 ESM 还是 CommonJS？

以 CommonJS 形式发布，可以直接 require\(\)；在 ES Module 项目中也可以用 import 引入（Node\.js 会把 module\.exports 作为默认导出）。

### @aws-cdk/aws-apigatewayv2-integrations 需要什么版本的 Node\.js？

package\.json 的 engines 字段要求 Node\.js \>= 14\.15\.0。版本不符时 npm 默认只给出警告，开启 engine-strict 后会拒绝安装。

### @aws-cdk/aws-apigatewayv2-integrations 可以商用吗？

@aws-cdk/aws-apigatewayv2-integrations 使用 Apache-2\.0 许可。宽松许可：允许商业使用、修改和再分发，并附带明确的专利授权；分发时需保留许可与 NOTICE 文件，修改过的文件要注明改动。以上为概括，不构成法律意见，请以许可原文为准。

### @aws-cdk/aws-apigatewayv2-integrations 的下载量有多少？

根据 npm 官方下载统计，@aws-cdk/aws-apigatewayv2-integrations 在 2026/10/07 – 2026/11/05 这 30 天内被下载 12,703 次，日均约 423 次。下载量会把 CI 构建、镜像同步和作为其他包依赖的安装一并计入，适合横向比较热度，不能直接等同于使用人数。

### @aws-cdk/aws-apigatewayv2-integrations 还在维护吗？

最新版本 1\.204\.0 发布于 2023/06/20（3 年前）；至今共发布 152 个版本，其中过去 12 个月发布了 0 个；首次发布于 2020/11/06。作者已将其标记为弃用，新项目建议寻找替代方案。

