首页 > 解决方案 > 使用 AWS SAM 嵌套应用程序构建大型 API 网关的正确方法是什么?

问题描述

我有一个包含大约 150 个端点的 API。当我尝试在一个 SAM(无服务器应用程序模型)模板中部署整个东西时,它会失败(预期),因为它想要创建的 744 个资源大于允许的最大值 200。

我将应用程序分解为一个默认模板,该模板创建无服务器 API 和一个默认路由和 Lambda 函数,并将分组的函数放在它们自己的模板中,上传到 S3 并在 aws::serverless::application (嵌套堆栈)中引用它们传入对在默认模板中创建的 API 网关的引用。

令我惊讶的是,它失败并出现错误:

RestApiId 必须是对同一模板中“AWS::Serverless::Api”资源的有效引用

在同一个模板中?!是否无法使用嵌套应用程序来绕过 200 个资源限制并且不被迫创建多个 API 网关实例?

更新:

SAM 开发人员似乎已注意到此问题,并且有一个问题和 RFC 正在解决中(截至 2019 年 5 月 5 日,这两个问题都未解决):

https://github.com/awslabs/serverless-application-model/issues/349 https://github.com/awslabs/serverless-application-model/issues/866

2021 年 10 月更新:

两年多后,GitHub 中的上述问题仍然存在

标签: aws-api-gatewayaws-sam

解决方案


推荐阅读