gpt4 book ai didi

amazon-web-services - 使用无服务器框架在 API Gateway 和 Lambda 上提供多个 api 版本

转载 作者:行者123 更新时间:2023-12-04 08:17:04 25 4
gpt4 key购买 nike

我正在使用 API Gateway 和 Lambda(无服务器框架)构建一个无服务器应用程序,并试图找到一种方法来提供我们应用程序 API 的多个版本。

这是我能想到的方法。

serverless.yml

 handler: list.handler
events:
- http:
path: {ver}/list
method: get
cors: true
authorizer: aws_iam

list.js
 export async function handler(event, context, callback) {
const ver = event.pathParameters.ver;
if (ver >= '1.0') {
return fooUtil.getNo(ver);
} else {
return 1;
}
}

fooUtil.js
 export function getNo(ver) {
if (ver >= 1.3) {
return 3;
} else {
return 2;
}
}

但是,我需要以这种方式将“ver”参数传递给所有函数。

有没有什么方法更容易(和可测试)从下面的请求中获取版本号?

fooUtil.js
 export function getNo() {
if (session.getValue('ver') >= 1.3) {
}
}

我不喜欢划分存储库或 git 分支来管理多个版本。

最佳答案

每个版本都有自己的资源并按文件夹将其分开?

像这样

 handler: v1.list.handler
events:
- http:
path: v1/list
method: get
cors: true
authorizer: aws_iam

handler: v2.list.handler
events:
- http:
path: v2/list
method: get
cors: true
authorizer: aws_iam

这使您可以灵活地测试所有内容,并且对于项目的新手来说更容易,因为版本控制通过文件夹分离是明确的。

关于amazon-web-services - 使用无服务器框架在 API Gateway 和 Lambda 上提供多个 api 版本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49963141/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com