Serverless - 服務



您不會希望為部署的每個函式建立單獨的 serverless.yml 檔案。那將非常繁瑣。幸運的是,serverless 提供了在同一個 serverless.yml 檔案中部署多個函式的功能。所有這些函式都屬於一個名為“service”的單個組。服務名稱通常是 serverless.yml 檔案中定義的第一件事。

service: my-first-service

provider:
   name: aws
   runtime: python3.6
   stage: prod
   region: us-east-2
   profile: yash-sanghvi
  
   functions:
      func1:
      handler: handler1.func1

   func2:
      handler: handler2.func2

服務中的所有函式在部署時,在 AWS Lambda 控制檯中將採用以下名稱格式:service_name-stage_name-function_name。因此,上面示例中的兩個函式在部署後將分別命名為:my-first-service-prod-func1my-first-service-prod-func2。stage 引數可幫助您區分程式碼開發的不同階段。

因此,如果您的函式處於開發階段,您可以使用階段dev;如果它處於測試階段,您可以使用階段test;如果它處於生產階段,您可以使用階段prod。這樣,您可以確保對 dev 階段所做的更改不會影響生產程式碼。階段名稱並非一成不變。dev、test、prod 僅為示例。

您可以根據需要選擇任何階段名稱。請注意,如果您有 API Gateway 觸發的 Lambda 函式(將在後面的章節中詳細介紹),則每個階段的端點將有所不同。

此外,如果您轉到 AWS Lambda 控制檯不太常用的“應用程式”部分,您將能夠看到帶有階段的整個服務。

AWS Lambda

如果您單擊您選擇的組合服務和階段,您將能夠在一個地方看到服務使用到的所有資源 - Lambda 函式、API Gateway、事件規則、日誌組、S3 儲存桶,所有內容。

Hello World Python Dev

更有趣的是,您可以轉到“監控”選項卡並檢視整個服務的效能 -> 呼叫次數、平均持續時間、錯誤計數等。您可以瞭解哪個函式對您的賬單貢獻最大。當您的服務中有多個函式時,監控每個單獨函式的效能變得非常困難。服務級別的“監控”選項卡在此處很有幫助。

Deployments

最後,“部署”選項卡可幫助您檢視服務的所有過去部署和部署狀態。

Monitoring
廣告

© . All rights reserved.