我想在dev-api.example.com/auth/*
处提供一个lambda。
lambda的行为就像是auth服务。因此它将具有类似
更明智的是,将更多的lambda绑定到单个ApiGateway
。
根据设计决定,我编写了以下serverless.yml
文件。
// serverless.yml
...
custom:
customDomain:
domainName: dev-api.example.com
stage: prod
basePath: ''
...
functions:
auth:
handler: src/index.handler
events:
- http:
method: ANY
path: /{auth+}
它似乎不起作用。每当我访问dev-api.example.com/auth/register
时,都会返回Not Found
错误。
答案 0 :(得分:1)
AWS API网关仅接受{proxy+}
语法(Link),然后我认为无服务器fw仅支持{proxy+}
和{any+}
。
如果您只想创建一个函数来处理2个api端点,则在这种情况下,端点是
POST /auth/register
(我认为是这样)
POST /auth/login
然后您在serverless.yml中进行设置,例如
...
functions:
auth:
handler: src/index.handler
events:
- http:
method: ANY
path: auth/{any+} # this matches any path, the token 'any' doesn't mean anything special
...
答案 1 :(得分:0)
感谢@hoangdv,您的建议几乎解决了问题。
问题出在path
上。应该是path: auth/{proxy+}
而不是path: /{auth+}
functions:
auth:
handler: src/index.handler
events:
- http:
method: ANY
path: auth/{proxy+}