无服务器框架,设置休息 api lambda
Serverless Framework, setting up rest api lambda
我想在 dev-api.example.com/auth/*
上提供一个 lambda。
lambda 将充当身份验证服务。所以它会有像
这样的网址
- dev-api.example.com/auth/register
- dev-api.example.com/auth/login
- 还有更多...
同样,更多的 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
它 returns Not Found
错误。
AWS API Gateway 只接受{proxy+}
语法(Link),那么我认为serverless fw只支持{proxy+}
和{any+}
.
如果您只想创建一个函数来处理 2 个 api 端点,在这种情况下,端点是
POST /auth/register
(我也这么认为)
POST /auth/login
然后你在serverless.yml中设置了like
...
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
...
谢谢@hoangdv,你的建议几乎解决了问题。
问题出在 path
。应该是 path: auth/{proxy+}
而不是 path: /{auth+}
functions:
auth:
handler: src/index.handler
events:
- http:
method: ANY
path: auth/{proxy+}
我想在 dev-api.example.com/auth/*
上提供一个 lambda。
lambda 将充当身份验证服务。所以它会有像
- dev-api.example.com/auth/register
- dev-api.example.com/auth/login
- 还有更多...
同样,更多的 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
它 returns Not Found
错误。
AWS API Gateway 只接受{proxy+}
语法(Link),那么我认为serverless fw只支持{proxy+}
和{any+}
.
如果您只想创建一个函数来处理 2 个 api 端点,在这种情况下,端点是
POST /auth/register
(我也这么认为)
POST /auth/login
然后你在serverless.yml中设置了like
...
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
...
谢谢@hoangdv,你的建议几乎解决了问题。
问题出在 path
。应该是 path: auth/{proxy+}
而不是 path: /{auth+}
functions:
auth:
handler: src/index.handler
events:
- http:
method: ANY
path: auth/{proxy+}