本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Lambda Web 函數端點
端點是 Web 函數的子資源,可為 HTTP 流量提供網路進入點。每個端點都包含具有 TLS 和身分驗證類型的唯一網域名稱。它也有地理範圍、擴展、限流和流量路由的設定。Web 函數最多可以有 10 個端點,每個端點都有獨立的組態。
下列各節說明端點類型、網域名稱、身分驗證和複寫。如需擴展和調節設定的資訊,請參閱 Lambda Web 函數的擴展行為。如需自動部署模式和流量路由的相關資訊,請參閱 部署模式。
端點類型
端點類型會決定 Lambda 如何跨 Web 函數部署, AWS 區域 以及如何將流量路由至它。您可以在建立端點時選擇端點類型。建立後無法變更端點類型。
- HomeRegion
-
在單一 中執行 Web 函數 AWS 區域。Lambda 會從您建立端點的區域提供請求。Lambda 會為端點配置單一區域網域名稱。
將 HomeRegion 用於不需要多區域可用性的應用程式,或您想要從最簡單的組態開始的應用程式。
- MultiRegion
-
在多個 中執行 Web 函數 AWS 區域。您可以在建立端點時指定目標區域。Lambda 會自動新增主要區域。端點必須包含至少一個其他區域。若要將流量路由到修訂,您可以設定端點的修訂權重。然後,Lambda 會自動將您的程式碼和組態複寫到所有指定的區域。Lambda 會配置單一全域網域名稱。它使用以延遲為基礎的路由,將每個請求傳送到通常為發起人提供最低延遲的區域。Lambda 不會執行以運作狀態為基礎的容錯移轉。
您可以從單一主區域管理 Web 函數。Lambda 會處理其他區域的複寫。用戶端連接到一個網域名稱。
對於需要多個地理位置之使用者低延遲的全域應用程式,請使用 MultiRegion。
- PerRegion
-
在多個 中執行 Web 函數 AWS 區域,每個區域都有個別的區域網域名稱。您可以在建立端點時指定目標區域。Lambda 會自動新增主要區域。端點必須包含至少一個其他區域。Lambda 會自動在每個指定的區域中設定端點。每個區域都有自己的獨立網域名稱。
與 MultiRegion 不同,Lambda 不會執行自動延遲型路由。您可以管理流量如何到達每個區域網域,例如使用您自己的 Route 53 路由政策或 CloudFront 分佈。
當您需要控制每個區域的路由決策時,請使用 PerRegion,例如實作地理限制、自訂容錯移轉邏輯或區域特定的流量政策。
區域和端點類型無法在建立後更新。若要變更這些項目,請使用您想要的組態建立新的端點、將流量遷移至新端點的網域名稱,然後刪除舊端點。
如需 Lambda 如何跨區域複寫 Web 函數並路由流量的詳細資訊,請參閱 多區域部署。
網域名稱
當您建立端點時,Lambda 會為每個端點配置唯一的網域名稱。用戶端會將 HTTPS 請求傳送至此網域,以叫用您的 Web 函數。網域支援 HTTPS,Lambda 會管理網域的 TLS 憑證。您不會自行建立、續約或管理憑證。
網域名稱格式取決於端點類型:
-
HomeRegion 和 PerRegion – 每個區域都有以下格式的網域:
domain-id.shard-id.lambda-web.region.on.aws範例:
bcdfghjklmnpqrst.b7t.lambda-web.ap-northeast-3.on.aws -
MultiRegion – 格式的單一全域網域:
domain-id.lambda-web.global.on.aws範例:
bcdfghjklmn.lambda-web.global.on.awsLambda 使用延遲型路由為每個用戶端選取區域。
端點達到作用中狀態後,您可以從GetWebFunctionEndpoint回應或從 Lambda 主控台擷取網域名稱。
注意
Web 函數端點不支援直接連接自訂網域名稱。呼叫端點網域的用戶端必須使用 Lambda 配置的網域名稱。若要在您自己的網域上提供流量,請將 Amazon CloudFront 分佈放在端點前面,並使用 Lambda 配置的網域名稱做為原始伺服器。
身分驗證類型
authType 設定會控制 Lambda 在將傳入的 HTTP 請求傳遞到您的應用程式之前,是否對其進行驗證。您可以在現有端點上更新此設定。
- ApplicationManaged
-
Lambda 不會驗證傳入請求。所有 HTTP 請求都會直接轉送到您的應用程式。您有責任在應用程式程式碼中處理身分驗證。
- IamAuth
-
Lambda 會驗證每個請求的簽章。使用 AWS 適用於 HomeRegion 和 PerRegion 網域的 Signature 第 4 版 (SigV4) 和適用於MultiRegion全域網域的 Signature 第 4a 版 (SigV4a) 簽署請求。只有具有
lambda:InvokeWebFunctionEndpoint許可的呼叫者才能叫用端點。
如需身分驗證的完整詳細資訊,包括 CloudFront 整合和資源型政策,請參閱 Lambda Web 函數端點存取控制。
自動部署模式
autoDeploymentMode 設定會控制 Lambda 是否在您每次部署應用程式時自動將流量路由到新的修訂版本。您可以在現有端點上更新此設定。
如果您在 API 請求autoDeploymentMode中省略 ,則預設為 Disabled。Lambda 主控台和 aws lambda-web deploy命令LatestRevision用於新HomeRegion端點。 LatestRevision 僅支援HomeRegion端點,因此 MultiRegion和 PerRegion端點一律使用 Disabled。使用 時Disabled,revisionWeights請指定總計 100。
- LatestRevision
-
Lambda 會自動將 100% 的流量路由到最新的作用中修訂。用於開發和預備環境。LatestRevision 模式僅適用於 HomeRegion 端點。
- 已停用
-
當您建立新的修訂時,Lambda 不會變更流量路由。您可以使用修訂權重手動控制路由。用於生產環境。停用模式適用於所有端點類型。MultiRegion 和 PerRegion 端點一律使用已停用模式。
如需部署模式、轉返和模式切換行為的詳細資訊,請參閱 部署模式。
擴展和限流
每個端點都有控制容量的擴展和限流設定。您可以使用 更新現有端點上的這些設定update-web-function-endpoint。省略 --scaling-config或 --throttle-config 以保留其目前值,或傳遞空物件 ('{}') 以清除先前設定的值。若要移除速率限制,請傳遞空--throttle-config物件。0 rateLimit的 會封鎖所有流量。
-
maxEnvironments- 選用。每個區域中端點的執行環境數目上限。未設定時,端點會視需要在帳戶配額內擴展。 -
rateLimit– 每秒請求數上限。此設定是選用的。未設定時,端點會受到每個端點請求率配額 10,000 RPS 和帳戶配額的限制。速率限制適用於所有執行環境的端點整體。這不是每個環境的限制。對於MultiRegion和 PerRegion 端點,每個區域會獨立強制執行限制。超額請求會收到 HTTP 429。
如需這些設定如何與修訂層級並行互動的詳細資訊,以及選擇值的指引,請參閱 Lambda Web 函數的擴展行為。
建立和管理端點
建立端點
建立 HomeRegion 端點 (AWS CLI)
-
aws lambda-web create-web-function-endpoint \ --function-namemy-web-app\ --endpoint-namemy-endpoint\ --endpoint-type HomeRegion \ --auth-type ApplicationManaged \ --auto-deployment-mode LatestRevision
建立MultiRegion端點 (AWS CLI)
-
aws lambda-web create-web-function-endpoint \ --function-namemy-web-app\ --endpoint-namemy-global-endpoint\ --endpoint-type MultiRegion \ --regionsus-east-1eu-west-1ap-northeast-1\ --auth-type ApplicationManaged \ --revision-weights '[{"revisionId": "rev-a1b2c", "weight": 100}]'MultiRegion 和 PerRegion 端點需要修訂權重,因為 LatestRevision 自動部署不適用於它們。如需詳細資訊,請參閱部署模式。
列出端點
aws lambda-web list-web-function-endpoints \ --function-namemy-web-app
回應包含每個端點的名稱、類型、網域名稱、狀態和組態。
取得端點詳細資訊
aws lambda-web get-web-function-endpoint \ --function-namemy-web-app\ --endpoint-namemy-endpoint
回應包含 regionalEndpoints欄位中端點的網域名稱、狀態、身分驗證類型、自動部署模式、擴展設定、修訂權重,以及 (適用於 MultiRegion和 PerRegion端點) 每個區域的狀態和更新狀態。
更新端點
您可以在現有端點上更新下列屬性:
descriptionauthTypeautoDeploymentModerevisionWeightsscalingConfigthrottleConfig
您無法更新下列屬性。若要變更這些項目,請使用您想要的組態建立新的端點、將流量遷移至新端點的網域名稱,然後刪除舊端點。
endpointType(HomeRegion、MultiRegion、PerRegion)regions(端點的目標區域)
刪除端點
aws lambda-web delete-web-function-endpoint \ --function-namemy-web-app\ --endpoint-namemy-endpoint
當您刪除端點時,它會進入刪除狀態。Lambda 會停止將新請求路由到端點,並淘汰其網域名稱。對於PerRegion端點,Lambda 會淘汰每個區域中的網域名稱。Lambda 絕不會將已刪除端點的網域名稱指派給任何帳戶中的另一個端點。Lambda 會耗盡傳輸中的請求。它可讓已在進行中的請求完成,並拒絕端點網域名稱的新請求。對於 MultiRegion和 PerRegion端點,Lambda 會從所有區域移除端點。刪除完成後,Lambda 會永久移除端點。
刪除端點並不會刪除 Web 函數或其修訂版。修訂仍然可供其他端點使用。