如何将无服务器应用到现有的API网关

时间:2019-06-14 03:27:02

标签: aws-lambda aws-api-gateway serverless

最近,我使用无服务器框架来创建/部署AWS lambda函数/ API网关。这是部署Lambda / API的一种非常酷的方法,但是我不知道如何将其应用于现有的AWS Lambdas / API。

有什么方法可以做到,而不必删除现有的,然后使用无服务器重新创建,因为我有数十个现有的lambda函数和api。

2 个答案:

答案 0 :(得分:0)

不。您可以通过在Serverless.yml中指向这些函数的特定ARN来重用lambda函数,但是如果没有使用Serverless的手动干预和重新创建,当前无法“替换” API Gateway组件。

好处是,除非您使用目前无服务器框架不支持的AWS API Gateway中的功能,否则它应该相对简单易行。

答案 1 :(得分:0)

https://www.serverless.com/framework/docs/providers/aws/events/apigateway/#share-api-gateway-and-api-resources

<块引用>

随着您的应用程序的增长,您可能需要将其分解为多个更小的服务。默认情况下,每个 Serverless 项目都会生成一个新的 API 网关。但是,您可以通过在 serverless.yml 中引用其 REST API ID 和根资源 ID 来在多个项目之间共享同一个 API 网关,如下所示:

service: service-name
provider:
  name: aws
  apiGateway:
    restApiId: xxxxxxxxxx # REST API resource ID. Default is generated by the framework
    restApiRootResourceId: xxxxxxxxxx # Root resource, represent as / path
    websocketApiId: xxxxxxxxxx # Websocket API resource ID. Default is generated by the framework
    description: Some Description # optional - description of deployment history

functions: ...