如何在不同阶段部署AWS Lambda功能但使用相同的API网关

时间:2019-12-26 08:02:21

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

我是无服务器框架的新手。

如何将多个阶段部署到相同的AWS端点,例如:

1nuu2d832j.execute-api.ap-southeast-1.amazonaws.com/prod

1nuu2d832j.execute-api.ap-southeast-1.amazonaws.com/dev

这是我的配置serverless.yml

service: wallet-api
custom:
  stages: 
    - local
    - dev
    - prod
plugins:
  - serverless-offline
  - serverless-dotenv-plugin
  - serverless-stage-manager
provider:
  name: aws
  region: ap-southeast-1
  runtime: nodejs12.x
  environment:
    NODE_ENV: ${env:NODE_ENV}
    MONGO_URI: ${env:MONGO_URI}
functions:
  graphql:
    handler: dist/graphql.handler
    events:
    - http:
        path: /
        method: post
    - http:
        path: /
        method: get

在我看来,我知道可以分多个阶段进行部署,但可以完成相同的api,但还不知道如何。

我希望有人能帮忙,谢谢。

1 个答案:

答案 0 :(得分:-1)

您将需要使用名为stage variables的概念,
这些是键/值变量,其值在每个环境中可能不同,
例如。 dev端点指向dev_someFunction
stage端点指向stage_someFunction

参考-
https://aws.amazon.com/blogs/compute/using-api-gateway-stage-variables-to-manage-lambda-functions/

https://serverless-stack.com/chapters/stages-in-serverless-framework.html