如何跨多个 SAM 模板共享单个 API 网关?

时间:2021-02-11 10:03:50

标签: amazon-web-services aws-lambda aws-api-gateway api-gateway serverless-application-model

我一直在尝试跨多个 SAM 模板使用单个 APIGateway。为此,我尝试从其他 SAM 模板上的基本模板导入 RestApiId,并在 lambda 的事件部分下使用它。但是SAM有限制说

<块引用>

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

经过 3 个小时的研究,我知道我们可以通过在基础模板中定义 API 网关并创建角色/策略/定义来实现它,以便它可以调用所需的功能。将 Lambda 拆分为多个仅支持 Lambda 的 SAM 文件,但没有在其下定义任何 Api 类型事件。通过这种方式,可以创建彼此独立的 Lambda 和 API 网关,并使用 Swagger/OpenAPI 进行集成并单独安排权限。

以下是推荐上述方法的有用链接。

Link1

Link2

我觉得这种方法有点复杂,如果 API 在 swagger 文件上越来越多,这可能会超过基本模板的 CFN 200 限制。如果有人提出一种更简单的方法来跨不同模板导入 apiGateway,我将不胜感激。

0 个答案:

没有答案