首页 > 解决方案 > AWS Lambda 函数和 AWS API Gateway(自定义域名)路径冗余/冲突

问题描述

我正在尝试删除在我的无服务器配置和 aws api 网关映射中使用的冗余路径。

问题:登录无服务器 yaml serverless.yml

frameworkversion: '>1.8'
service: ${stage}-login

provider:
name: aws
runtime: nodejs10.x
timeout: 12


functions: 
  login: 
    name: login
    handler: login.handler
    events: 
      - http: 
          path: login
          cors: true
          integration: lambda
          request:
            passThrough: WHEN_NO_MATCH
            template:
              application/json:
              <response omitted>
plugins:
 - serverless-offline

API 映射到我的自定义域

  1. API - 登录开发
  2. 阶段 - 开发
  3. 路径(可选) - 登录

目标:Lambda 函数:

  1. 登录 - {base url}/dev/login
  2. 注册 - {base url}/dev/register

发生了什么:

  1. 登录 {base url}/dev/login/login
  2. 注册 - {base url}/dev/register/register

所采取的行动:

  1. 尝试删除路径(可选),但如果省略路径,它将不允许我添加另一个 lambda 函数。
  2. 尝试代理(不确定这是否按我理解的方式工作)但它不允许,因为错误表明 {login} 用于我的 lambda 函数参数之一。
  3. 删除了无服务器 yaml 配置文件中的路径并将其替换为空白或 / - 但对我来说不是一个选项,因为我需要保留现有配置。

很感谢任何形式的帮助。

标签: amazon-web-servicesaws-lambdaaws-api-gateway

解决方案


你有没有试过这个:

functions: 
  login: 
    name: login
    handler: login.handler
    events: 
      - http: 
          path: /login

......

通过在路径的开头添加“/”


推荐阅读