![](/img/trans.png)
[英]How to manage typeORM connection of Aurora Serverless data api inside Lambda using Serverless Framework
[英]How do you create a new version of an API using serverless framework?
我有一個使用無服務器框架開發的簡單 API 部署在生產環境中。 serverless.yaml 與這個類似:
service: example
provider:
name: aws
plugins:
- serverless-plugin-scripts
- serverless-offline
functions:
package:
runtime: nodejs14.x
handler: build/index.handler
events:
- httpApi: "POST /test"
API 將在下一個版本中更改,我想為我的客戶提供向后兼容性。 我想在 API 網關中創建一個/v1/test
路由,它將指向 function 的新實現,我希望/test
保持不變。
有沒有辦法使用無服務器框架來做到這一點?
您可以做幾件事。
functions:
# V0 package function
package:
runtime: nodejs14.x
handler: build/index.handler
events:
- httpApi: "POST /test"
# V1 package function
packageV1:
runtime: nodejs14.x
handler: build/index.handlerv1
events:
- httpApi: "POST v1/test"
event
負載以確定調用了哪個路徑並使用它來修改響應或功能以遵守 API 規范。 package:
runtime: nodejs14.x
handler: build/index.handler # Both routes share the function, you'll need to modify logic to implement both v0/v1 spec
events:
- httpApi: "POST /test" # V0 route
- httpApi: "POST v1/test" # V1 route
這兩個都適用於臨時遷移,您最終會棄用舊的 API。如果您永久需要這兩個,您還可以將 v0 API 遷移到一個新堆棧(或類似地為 v1 API 創建一個新堆棧)。
Lambda 按調用計費,而不是按函數計費。 因此,考慮到這一點,我建議創建一個完全不同的 function,這樣在時機成熟時更容易棄用和刪除。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.