我想對具有 Amazon Virtual Private Cloud (Amazon VPC) 連線的 AWS Lambda 函數授予網際網路存取權。
Lambda 函數預設會在具有網際網路存取權的 Lambda 管理 VPC 中執行。若要存取 AWS 帳戶內 VPC 中的資源,請將 VPC 組態新增至該函數。除非 VPC 具有網際網路存取權,否則此組態會將該函數限制於存取 VPC 內的資源。
即使您將 Lambda 函數與公共子網絡想關聯,該函數也無法直接連線至網際網路。VPC 中的函數具有私有 IP 位址,並且需要 NAT 閘道或 NAT 執行個體才能存取網際網路。
**注意:**您也可以使用 VPC 端點,在沒有網際網路存取權時從 Amazon VPC 連線內部連線至支援的 AWS 服務。
為您的 Lambda 函數建立私有子網路,並為您的 NAT 閘道建立公用子網路。在 Name tag (名稱標籤) 欄位中,為每個子網路輸入一個可識別其為公用或私有子網路的名稱。例如,使用公用子網路、私有 Lambda 1 和私有 Lambda 2。
**注意:**最佳做法是在不同的可用區域建立多個私有子網路。此動作會建立備援,並允許 Lambda 為您的函數維護高可用性。
建立網際網路閘道,並將其附加至您的 VPC。
建立 NAT 閘道。針對 Subnet (子網路) 選擇要公開的子網路。例如,選擇 Public subnet (公用子網路)。
(選擇性) 測試 NAT 閘道設定。
**注意:**當 VPC 中的 Lambda 函數發出請求時,該函數會隨機選取相關聯的子網路。如果函數使用設定錯誤的子網路,您會收到錯誤。為避免這項錯誤,請確保對函數使用的所有子網路使用相同的組態。
若要設定自訂路由表,請針對公用和私有子網路完成下列步驟:
注意:確定 NAT 閘道的路由處於作用中狀態。如果已刪除 NAT 閘道,而且您沒有更新路由,則路由會具有黑洞狀態。如需詳細資訊,請參閱刪除 NAT 閘道。
VPC 中的預設網路存取控制清單 (network ACL) 允許所有傳入和傳出流量。如果您變更網路 ACL 規則,請確定您允許來自 Lambda 函數的傳出請求。此外,請確定您的網路 ACL 允許下列傳入流量:
如需詳細資訊,請參閱確保 Amazon VPC 中的網路間流量隱私權。
為 VPC 建立 Lambda 執行角色。然後,更新 Lambda 函數以使用新的 Lambda 執行角色。
將您的函數附加至 VPC,並設定下列設定:
對於具有 Amazon VPC 連線的 Lambda 函數,您可以使用僅限輸出的網際網路閘道來存取網際網路。如需詳細資訊,請參閱 IPv6 支援。
對 Lambda 中的網路問題進行疑難排解
如何對 Amazon VPC 中的 Lambda 函數逾時問題進行疑難排解?
如何對 Lambda 函數中的 ETIMEDOUT 錯誤進行疑難排解?
讓 Lambda 函數存取 Amazon VPC 中的資源
如何對 Lambda 函數故障進行疑難排解?