@aws-cdk/aws-apigatewayv2-integrations-alpha

中文文档
2.114.1-alpha.0发布于 2023/12/06Apache-2.0TypeScriptCommonJS零依赖近 30 天下载 11.7万

此模块被贬值. 所有建筑现在都可以在aws-cdk-lib/aws-apigatewayv2集成下使用

中文使用文档
文档目录8 节
  1. 目录
  2. HTTP API 软件
  3. 兰布达
  4. HTTP 代理服务器
  5. 私营一体化
  6. 请求参数
  7. 网络锁定 APIs
  8. Lambda WebSocket 集成系统

AWS APIGatewayv2 集成


Deprecated

此API 可能会发出警告 。 后向兼容性没有保证 .


所有构造都转移到了aws-cdk-lib/aws-apigatewayv2集成.

目录

HTTP API 软件

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

兰布达

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

API Gateway服务将引用Lambda函数,其事件有效载荷具有特定格式。 服务预期 以特定格式响应的函数。 有关该格式的详情请查阅 与AWS Lambda合作 代理集成。 。 。 .

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

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

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 代理服务器 整合。 。 。 .

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

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

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

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的基本应用程序负载平衡器的私人集成:

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

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 的基本网络负载平衡器私人集成:

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

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 的基本发现服务私人集成:

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

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 请求和 答复。 。 。 .

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

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

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() 方法 :

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

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 网关服务将请求转发到 Lambda 函数

API Gateway服务将引用Lambda函数,其事件有效载荷具有特定格式.

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

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

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-alpha 共发布 169 个版本,首次发布于 2021/10/14;过去 12 个月发布了 0 个版本。

版本发布日期距今
2.114.1-alpha.0latest2023/12/062 年前
2.114.0-alpha.02023/12/062 年前
2.113.0-alpha.02023/12/022 年前
2.112.0-alpha.02023/12/012 年前
2.111.0-alpha.02023/11/282 年前
2.110.1-alpha.02023/11/222 年前

关于 @aws-cdk/aws-apigatewayv2-integrations-alpha 的常见问题

@aws-cdk/aws-apigatewayv2-integrations-alpha 是什么?

此模块被贬值. 所有建筑现在都可以在aws-cdk-lib/aws-apigatewayv2集成下使用

如何安装 @aws-cdk/aws-apigatewayv2-integrations-alpha?

在项目目录运行 npm install @aws-cdk/aws-apigatewayv2-integrations-alpha,或使用 pnpm add / yarn add / bun add。它还需要宿主项目提供 peer 依赖:@aws-cdk/aws-apigatewayv2-alpha(2.114.1-alpha.0)、aws-cdk-lib(^2.114.1)、constructs(^10.0.0)。npm 7 及以上与 pnpm 8 及以上默认会自动安装必需的 peer 依赖,Yarn 需要手动安装。

@aws-cdk/aws-apigatewayv2-integrations-alpha 支持 TypeScript 吗?

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

@aws-cdk/aws-apigatewayv2-integrations-alpha 支持 ESM 还是 CommonJS?

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

@aws-cdk/aws-apigatewayv2-integrations-alpha 需要什么版本的 Node.js?

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

@aws-cdk/aws-apigatewayv2-integrations-alpha 可以商用吗?

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

@aws-cdk/aws-apigatewayv2-integrations-alpha 的下载量有多少?

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

@aws-cdk/aws-apigatewayv2-integrations-alpha 还在维护吗?

最新版本 2.114.1-alpha.0 发布于 2023/12/06(2 年前);至今共发布 169 个版本,其中过去 12 个月发布了 0 个;首次发布于 2021/10/14。发布频率只是参考信号:功能稳定的工具可能很少需要更新,建议结合源码仓库的 issue 和提交记录判断。