本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
建立和管理 Lambda 函數 URLs
函數URL是 Lambda 函數的專用 HTTP (S) 端點。您可以透URL過 Lambda 主控台或 Lambda 建立和設定函數API。當您建立函數時URL,Lambda 會自動為您產生唯一的URL端點。一旦你創建一個函數URL,它的URL端點永遠不會改變。函數URL端點具有以下格式:
https://
<url-id>
.lambda-url.<region>.on.aws
注意
下列地區不支援函數URLs:亞太區域 (海德拉巴) (ap-south-2
)、亞太區域 (墨爾本) (ap-southeast-4
)、加拿大西部 (卡加利ca-west-1
) ()、歐洲 (西班牙eu-south-2
) ()、歐洲 (蘇黎世eu-central-2
) ()、以色列 (特拉維夫il-central-1
) () 和中東 (UAE) (me-central-1
)。
功能URLs是雙堆棧啟用,支持IPv4和IPv6。URL為函數配置函數後,您可以通過 Web 瀏覽器,curl,郵差或任何HTTP客戶端通過其HTTP(S)端點調用函數。
注意
您只能URL透過公共互聯網使用您的功能。雖然 Lambda 函數確實支援 AWS PrivateLink,但函數則URLs不支援。
Lambda 函數URLs使用以資源為基礎的政策來實現安全性和存取 功能URLs還支持跨源資源共享(CORS)配置選項。
您可以URLs將函數應用於任何函數別名或$LATEST
未發布的函數版本。您無法將函數添加URL到任何其他函數版本。
以下部分說明如何URL使用 Lambda 主控台和 AWS CloudFormation 範本建立和管理函數 AWS CLI
主題
創建一個函數URL(控制台)
請依照下列步驟URL使用主控台建立函數。
-
開啟 Lambda 主控台中的函數頁面
。 -
選擇您要URL為其建立函數的函數名稱。
-
選擇 [組態] 索引標籤,然後選擇 [函數] URL。
-
選擇 Create function (建立函數)URL。
-
對於驗證類型,請選擇 AWS_ IAM 或NONE。如需函數URL驗證的詳細資訊,請參閱存取控制。
-
(選擇性) 選取 [設定跨來源資源共用 (CORS)],然後CORS設定函數URL的設定。如需有關的更多資訊CORS,請參閱跨源資源共享()CORS。
-
選擇 Save (儲存)。
這將為您的函數URL的$LATEST
未發布版本創建一個函數。該功能URL出現在控制台的功能概述部分中。
-
開啟 Lambda 主控台中的函數頁面
。 -
選擇具有您要URL為其建立函數之別名的函數名稱。
-
選擇「別名」頁標,然後選擇要URL為其建立函數的別名名稱。
-
選擇 [組態] 索引標籤,然後選擇 [函數] URL。
-
選擇 Create function (建立函數)URL。
-
對於驗證類型,請選擇 AWS_ IAM 或NONE。如需函數URL驗證的詳細資訊,請參閱存取控制。
-
(選擇性) 選取 [設定跨來源資源共用 (CORS)],然後CORS設定函數URL的設定。如需有關的更多資訊CORS,請參閱跨源資源共享()CORS。
-
選擇 Save (儲存)。
這會為您的函數URL別名創建一個函數。該函數URL出現在控制台的功能概述部分為您的別名。
使用函數URL(控制台)創建新函數
-
開啟 Lambda 主控台中的 函數頁面
。 -
選擇 建立函數。
-
在基本資訊下,請執行下列動作:
-
為 Function name (函數名稱) 輸入您函數的名稱,例如
my-function
。 -
為 Runtime (執行階段) 選擇您偏好的語言執行階段,例如 Node.js 18.x。
-
為 Architecture (架構) 選擇 x86_64 或 arm64。
-
展開 Permissions (許可),接著選擇建立新的執行角色或使用現有角色。
-
-
展開 [進階設定],然後選取 [功能] URL。
-
對於驗證類型,請選擇 AWS_ IAM 或NONE。如需函數URL驗證的詳細資訊,請參閱存取控制。
-
(選擇性) 選取設定跨來源資源共用 (CORS)。通過在函數創建期間選擇此選項,默認情況下,您的函數URL允許來自所有來源的請求。您可以URL在建立函數後編輯函數的CORS設定。如需有關的更多資訊CORS,請參閱跨源資源共享()CORS。
-
選擇建立函數。
這將URL為函數的$LATEST
未發布版本創建一個帶有函數的新函數。該功能URL出現在控制台的功能概述部分中。
創建一個函數URL(AWS CLI)
若要使用 AWS Command Line Interface (AWS CLI) URL 為現有 Lambda 函數建立函數,請執行下列命令:
aws lambda create-function-url-config \ --function-name
my-function
\ --qualifierprod
\ // optional --auth-typeAWS_IAM
--cors-config{AllowOrigins="https://example.com"}
// optional
這會將函數新增URL至函數的prod
限定詞my-function
。如需有關這些組態參數的詳細資訊,請參閱API參照CreateFunctionUrlConfig中的〈〉。
注意
若要URL透過建立函數 AWS CLI,函數必須已經存在。
將函數添加URL到 CloudFormation 模板
若要將資AWS::Lambda::Url
源新增至 AWS CloudFormation 範本,請使用下列語法:
JSON
{ "Type" : "AWS::Lambda::Url", "Properties" : { "AuthType" : String, "Cors" : Cors, "Qualifier" : String, "TargetFunctionArn" : String } }
YAML
Type: AWS::Lambda::Url Properties: AuthType: String Cors: Cors Qualifier: String TargetFunctionArn: String
參數
(必要)
AuthType
— 定義函數的驗證類型URL。可能的值為AWS_IAM
或NONE
。如果您希望只讓完成身分驗證的使用者存取,請設為AWS_IAM
。若要略過IAM驗證並允許任何使用者對您的功能發出要求,請將設定為NONE
。-
(選擇性)
Cors
— CORS定義函數的設定URL。若要新增Cors
至中的AWS::Lambda::Url
資源 CloudFormation,請使用下列語法。範例 AWS:: Lambda:: 烏爾科爾斯()JSON
{ "AllowCredentials" : Boolean, "AllowHeaders" : [ String, ... ], "AllowMethods" : [ String, ... ], "AllowOrigins" : [ String, ... ], "ExposeHeaders" : [ String, ... ], "MaxAge" : Integer }
範例 AWS:: Lambda:: 烏爾科爾斯()YAML
AllowCredentials: Boolean AllowHeaders: - String AllowMethods: - String AllowOrigins: - String ExposeHeaders: - String MaxAge: Integer
(選用)
Qualifier
– 別名名稱。(必要)
TargetFunctionArn
— Lambda 函數的名稱或 Amazon 資源名稱 (ARN)。有效名稱的格式包括:函數名稱 –
my-function
功能 ARN —
arn:aws:lambda:us-west-2:123456789012:function:my-function
部分 ARN —
123456789012:function:my-function
跨源資源共享()CORS
要定義不同來源如何訪問您的函數URL,請使用跨源資源共享(CORS)
CORS頭 | CORS組態屬性 | 範例值 |
---|---|---|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
當您URL使用 Lambda 主控台或設定CORS函數時 AWS CLI,Lambda 會自動透過函數將CORS標頭新增至所有回應URL。或者,您可以手動將CORS標題添加到函數響應中。如果有衝突的標頭,預期的行為取決於請求的類型:
-
對於諸如請求之類的預檢OPTIONS請求,函數上配置的CORS標頭優URL先。Lambda 在響應中只返回這些CORS頭文件。
-
對於非預檢請求 (例如GET或POST請求),Lambda 會傳回函數上已設定的CORS標頭URL,以及函數傳回的CORS標頭。這可能會導致回應中出現重複的CORS標頭。您可能會看到類似下列內容的錯誤:
The 'Access-Control-Allow-Origin' header contains multiple values '*, *', but only one is allowed
。
一般而言,我們建議您在函數上CORS設定所有設定URL,而不是在函數回應中手動傳送CORS標頭。
節流功能 URLs
調節作業會限制函數處理請求的速度。這在許多情況下都相當實用,例如防止函數多載下游資源,或處理突然激增的請求數。
您可以設定保留並行,藉此限制 Lambda 函數透URL過函數處理的請求速率。預留並行可限制函數的並行呼叫次數上限。函數的每秒最大請求率 (RPS) 相當於配置的保留並行的 10 倍。例如,如果您將函數設定為 100 的保留並行,則最大值RPS為 1,000。
每當你的函數並發超過保留的並發,你的函數URL返回一個HTTP429
狀態碼。如果您的函數根據設定的保留並行收到超過 10 倍上RPS限的要求,您也會收到錯誤HTTP429
訊息。如需預留並行的詳細資訊,請參閱「為函數配置保留並發」。
停用功能 URLs
在緊急情況下,您可能想要拒絕所有流量到您的功能URL。若要停用您的功能URL,請將保留並行設定為零。這將節流對您函數的所有請求URL,從而導致HTTP429
狀態響應。若要重新啟用函數URL,請刪除保留的並行設定,或將組態設定為大於零的數量。
刪除功能 URLs
刪除功能時URL,無法復原該功能。創建一個新的函數URL將導致不同的URL地址。
注意
如果您刪除URL具有驗證類型的函數NONE
,Lambda 不會自動刪除關聯的資源型政策。如果您想要刪除此政策,則必須手動執行。
-
開啟 Lambda 主控台中的函數頁面
。 -
選擇函數的名稱。
-
選擇 [組態] 索引標籤,然後選擇 [函數] URL。
-
選擇 刪除 。
-
將 delete 一詞輸入欄位以確認刪除。
-
選擇 刪除 。
注意
當您刪除具有函數的函數時URL,Lambda 會以非同步方式刪除該函數URL。如果您立即在同一帳戶中創建具有相同名稱的新函數,則原始函數可能URL會映射到新函數而不是刪除。