【问题标题】:Deploy Lambda function in 2 Stages of Gateway via serverless通过无服务器在网关的 2 个阶段部署 Lambda 函数
【发布时间】:2019-03-06 05:40:25
【问题描述】:

我尝试通过具有不同环境变量的 2 个阶段 的无服务器框架部署 lambda 函数。 我想要一个用于生产的 lambda 和一个用于开发的 lambda。 唯一的区别是应该使用的数据库的环境变量

我使用 serverless deploy -s dev 和 serverless deploy -s prod 功能来部署它。例如,所需的角色具有后缀 -dev 或 -prod。所以没有问题。

但我无法将相同的 API 网关资源(例如 /foo)用于 GET 方法。我希望我会有类似的东西:example.com/dev/fooexample.com/prod/foo 但不幸的是出现以下错误:

此资源的 ApiGateway Method 方法已存在

我在这里错过了什么吗?资源/foo的方法GET方法是否独立于阶段?

【问题讨论】:

  • 当我执行-s dev-s prod 时,每个阶段都会获得一个单独的根地址/dev/prod。如果 APIG 以前存在,则无服务器 CloudFormation 堆栈无法创建自己的。您可能需要删除之前创建的 APIG,并允许 Serverless CloudFormation 重新创建它。

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


【解决方案1】:

这是设计使然。
目前,无服务器框架为您部署到的每个阶段生成一个全新的堆栈。这种设计不允许它利用 API Gateway 的阶段功能。

有一个拉取请求引用了您的问题here
据此,您可能会找到serverless-aws-alias plugin 的替代方案。

【讨论】:

    猜你喜欢
    • 2019-03-02
    • 2019-03-08
    • 2020-05-02
    • 1970-01-01
    • 1970-01-01
    • 2021-10-07
    • 1970-01-01
    • 2020-04-16
    • 2021-11-03
    相关资源
    最近更新 更多