首页 > 解决方案 > AWS 无服务器 SAM - 如何同时使用隐式和显式 API 定义?

问题描述

我有一个由多个 lambda 函数组成的 .net 核心无服务器应用程序,并且我正在使用 SAM 进行打包和部署。

SAM 模板中的 lambda 函数定义包含它们的隐式 API 定义(我想保持这种方式)。

现在,除了 lambda 函数(例如 S3 代理)之外,我还需要定义一些额外的 API 资源。

但是,当我将 AWS::Serverless::Api 资源添加到 SAM 模板并进行部署时,我最终会在 API gateway 中得到两个单独的 API

对于显式 API 定义,我基本上在 AWS 控制台中配置了 API,然后将其导出为 swagger,并在资源的 DefinitionBody 属性中使用了 swagger json。

有没有办法同时使用来自 lambda 函数的隐式 API 定义和来自资源的显式 API 定义,并将它们合并到 API 网关中的单个 API 中?

标签: amazon-web-servicesaws-lambdaaws-api-gatewayaws-sam

解决方案


已解决:在 swagger 中声明所有函数/api 隐式和显式。在所有隐式 api 声明中添加对 Serverless::API 的引用,以避免以 2 个 api 结尾。


推荐阅读