首页 > 解决方案 > 创建具有不同集成的多个 API Gateway 阶段

问题描述

我正在尝试创建一个与 API 网关关联的 lambda 函数。

每当部署新版本时,将为该函数创建一个新的 lambda 版本,该版本将具有此 ARN arn:lambda_arn:[version]

此外,还需要创建一个新的 API Gateway 阶段,并与该 lambda 版本集成。

当我部署 CF 堆栈时:

我已经尝试使用 sam cli yaml 模板和 aws cdk 来实现这一点,但这是我面临的问题:

无法创建具有不同集成的多个 API 网关阶段,保留旧阶段

http_api = apigwv2.HttpApi(self, "cdk_http_api")

即使我可以为该 HttpApi 创建多个阶段,但所有阶段都将具有完全相同的集成和路由。

创建部署会很有用,但即使我无法使用不同的集成创建不同的部署(使用不同版本的 lambda)

deployment = apigwv2.CfnDeployment(
    self, "first_deployment", api_id=http_api.api_id, stage_name="test"
)

我也不能把它附加到舞台上!不像下面提到的 ApiGatewayV1

新创建的阶段将删除旧阶段,我不能追加新阶段

正在删除 Lambda 版本:

我怎样才能达到我想要的

不重复此答案,因为它使用支持部署的 ApiGatewayV1,不幸的是 ApiGatewayV2 不支持。

标签: aws-api-gatewayaws-cdkaws-samaws-sam-clisam

解决方案


推荐阅读