連接 Lambda 的傳入介面VPC端點 - AWS Lambda

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

連接 Lambda 的傳入介面VPC端點

如果您使用 Amazon Virtual Private Cloud(AmazonVPC)託管 AWS 資源,則可以在您的VPC和 Lambda 之間建立連接。您可以使用此連線來叫用您的 Lambda 函數,而不需要透過公有網際網路。

若要在您的VPC和 Lambda 之間建立私有連線,請建立介面VPC端點。介面端點由其提供支援 AWS PrivateLink,可讓您在APIs沒有網際網路閘道、NAT裝置、VPN連線或 AWS Direct Connect 連線的情況下私有存取 Lambda。您中的執行個體VPC不需要公有 IP 地址即可與 Lambda 通訊APIs。您VPC和 Lambda 之間的流量不會離開 AWS 網路。

每個介面端點都由子網路中的一個或多個彈性網路介面表示。網路介面會提供一個私有 IP 地址,以作為連至 Lambda 的流量進入點。

Lambda 介面端點的考量

在為 Lambda 設定介面端點之前,請務必檢閱 Amazon VPC 使用者指南中的界面端點屬性和限制

您可以從您呼叫任何 Lambda API 作業VPC。例如,您可以叫用 Lambda 函數,方法是InvokeAPI從您的VPC. 如需 Lambda 的完整清單APIs,請參閱 Lambda API 參考資料中的動作

use1-az3是 Lambda VPC 函數的有限容量區域。您不應將此可用區域中的子網路與 Lambda 函數搭配使用,因為這可能會在出現中斷狀況時導致區域備援減少。

用於持續連線的 keep-alive (保持啟用)

Lambda 一段時間後會清除閒置連線,因此您必須使用實時指示來維持持續連線。叫用函式時,嘗試重複使用閒置連線會導致連線錯誤。若要維護持續連線,請使用與執行階段相關聯的 keep-alive (保持啟用) 指令。如需範例,請參閱《AWS SDK for JavaScript 開發人員指南》中的在 Node.js 中重複使用 Keep-Alive 的連線

計費考量

透過介面端點來存取 Lambda 函數無需額外成本。如需 Lambda 定價的詳細資訊,請參閱 AWS Lambda 定價

的標準定價 AWS PrivateLink 適用於 Lambda 的介面端點。您的 AWS 帳戶每小時會在每個可用區域中佈建一個介面端點,以及透過介面端點處理的資料計費。如需介面端點定價的詳細資訊,請參閱 AWS PrivateLink 定價

VPC對等互連考量

您可以使用VPC對等連接將其他端點連接VPCs到VPC與介面端點。VPC對等是兩VPCs者之間的網路連線。您可以在自己的兩個帳戶之間建立VPC對等連接VPCs,或VPC在另一個 AWS 帳戶中建立對等連接。也VPCs可以在兩個不同的 AWS 區域中。

對等之間的流量VPCs保持在 AWS 網絡上,並且不遍歷公共互聯網。VPCs對等後,Amazon 彈性運算雲端 (AmazonEC2) 執行個體、Amazon Relational Database Service 服務 (AmazonRDS) 執行個體或兩者中VPC啟用的 Lambda 函數等資源都VPCs可以API透過其中一個端點建立的介面端點存取 Lambda。VPCs

為 Lambda 建立介面端點

您可以使用 Amazon VPC 主控台或 AWS Command Line Interface (AWS CLI) 為 Lambda 建立介面端點。如需詳細資訊,請參閱 Amazon VPC 使用者指南中的建立介面端點

若要為 Lambda 建立介面端點 (主控台)
  1. 開啟 Amazon VPC 主控台的「端點」頁面

  2. 選擇建立端點

  3. 對於服務類別,請確定您已選擇 AWS 服務

  4. 對於「服務名稱」,請選擇「喜好」。region。拉姆達。確認類型介面

  5. 選擇VPC和子網路。

  6. 若要DNS為介面端點啟用私人,請選取啟用DNS名稱核取方塊。我們建議您為的VPC端點啟用私人DNS名稱 AWS 服務。這可確保使用公用服務端點 (例如透過 a 發出的要求) 的要求會解析到您的VPC端點。 AWS SDK

  7. 對於安全群組,選擇一或多個安全群組。

  8. 選擇建立端點

若要使用私密DNS選項,您必須設定enableDnsHostnamesenableDnsSupportattributes的VPC。如需詳細資訊,請參Amazon VPC 使用者指南VPC中的檢視和更新DNS支援。如果您DNS為介面端點啟用私有,則可以使用 Lambda 的區域預設DNS名稱向 Lambda 發出API請求,例如lambda.us-east-1.amazonaws.com。如需更多服務端點,請參閱《AWS 一般參考》中的服務端點和配額

如需詳細資訊,請參Amazon VPC 使用者指南中的透過介面端點存取服務

如需使用建立和設定端點的相關資訊 AWS CloudFormation,請參閱使AWS CloudFormation 用指南中的AWSEC2::: VPCEndpoint 資源。

若要為 Lambda 建立介面端點 (AWS CLI)

使用命create-vpc-endpoint令並指定 VPC ID、VPC端點類型 (介面)、服務名稱、將使用端點的子網路,以及要與端點網路介面建立關聯的安全性群組。例如:

aws ec2 create-vpc-endpoint --vpc-id vpc-ec43eb89 --vpc-endpoint-type Interface --service-name com.amazonaws.us-east-1.lambda --subnet-id subnet-abababab --security-group-id sg-1a2b3c4d

為 Lambda 建立介面端點政策

若要控制誰可以使用您的介面端點,以及使用者可以存取哪些 Lambda 函數,您可以將端點政策連接至您的端點。此政策會指定下列資訊:

  • 可執行動作的主體。

  • 委託人可以執行的動作。

  • 委託人可以對其執行動作的資源。

如需詳細資訊,請參閱 Amazon VPC 使用者指南的使用VPC端點控制對服務的存取。

範例:Lambda 動作的介面端點政策

以下是 Lambda 端點政策的範例。當連接到端點時,此政策允許使用者 MyUser 叫用函式 my-function

注意

您需要在資源中包含限定函數和不合ARN格函數。

{ "Statement":[ { "Principal": { "AWS": "arn:aws:iam::111122223333:user/MyUser" }, "Effect":"Allow", "Action":[ "lambda:InvokeFunction" ], "Resource": [ "arn:aws:lambda:us-east-2:123456789012:function:my-function", "arn:aws:lambda:us-east-2:123456789012:function:my-function:*" ] } ] }