aws-api-gateway - 创建具有不同集成的多个 API Gateway 阶段
问题描述
我正在尝试创建一个与 API 网关关联的 lambda 函数。
每当部署新版本时,将为该函数创建一个新的 lambda 版本,该版本将具有此 ARN arn:lambda_arn:[version]
。
此外,还需要创建一个新的 API Gateway 阶段,并与该 lambda 版本集成。
当我部署 CF 堆栈时:
- 创建新的 lambda 版本
- 创建与该版本 lambda 集成的 API Gateway 阶段
- 创建与 lambda 别名( )
dev
集成的API Gateway 阶段,并保留此阶段,通过 lambda 设置手动管理别名。dev
arn:lambda:dev
我已经尝试使用 sam cli yaml 模板和 aws cdk 来实现这一点,但这是我面临的问题:
无法创建具有不同集成的多个 API 网关阶段,保留旧阶段
- 在 cdk 我只能创建一次 HttpApi
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 版本:
在 cdk 中,当我部署新的 lambda 版本时,之前的 lambda 版本将被删除。
在 Sam CLI 中,当我将
AutoPublishAlias
属性设置为函数时,会创建一个新版本,并且指定的别名将转移到该新版本,但幸运的是它不会删除旧版本。
我怎样才能达到我想要的
不重复此答案,因为它使用支持部署的 ApiGatewayV1,不幸的是 ApiGatewayV2 不支持。
解决方案
推荐阅读
- tensorflow - 需要澄清有关 SGD 优化器的信息
- search - 查找最近点限制搜索
- python - else之后继续功能
- igor - 如何计算 Igor Pro 中值列表的小数位数
- wso2 - 无法在 Integration Studio 8.0.0 中的远程 Micro Integrator 实例中部署工件
- python - ConfusionMatrixDisplay(Scikit-Learn)绘图标签超出范围
- python - 朱庇特 | 如何使用 matplotlib 在 for 循环中仅在一个绘图上绘制多行并保留前一行?
- selenium - Selenium C# 中的 ExtentReports 4.1.0 不显示所有使用的 TestClass 文件的报告
- python - 在命令行上安装了一个包,可以通过命令行导入它。在 jupyter notebook 中导入时收到 ModuleNotFoundError
- c# - 如何使用 XmlSerializer 反序列化未知元素?