本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
啟用 VPC 連線的 Lambda 函數的網際網路存取
根據預設,會在具有網際網路存取權的 Lambda 受管 VPC 中執行 Lambda 函數。若要存取帳戶中 VPC 的資源,可以將 VPC 組態新增至函數。這會將函數限制在該 VPC 內的資源,除非 VPC 具有網際網路存取權。此頁面說明如何提供 VPC 所連接 Lambda 函數的網際網路存取。
建立 VPC
建立 VPC 工作流程會建立 Lambda 函數所需的所有 VPC 資源,以從私有子網路中存取公有網際網路,包括子網路、NAT 閘道、網際網路閘道和路由表項目。
若要建立 VPC
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在儀表板上,選擇建立 VPC。
-
針對 Resources to create (建立資源),選擇 VPC and more (VPC 等)。
-
設定 VPC
-
針對自動產生名稱標籤,輸入 VPC 的名稱。
-
對於 IPv4 CIDR 區塊,您可以保留預設建議,或者您也可以輸入應用程式或網路所需的 CIDR 區塊。
-
如果您的應用程式使用 IPv6 地址進行通訊,請選擇 IPv6 CIDR 區塊 > Amazon 提供的 IPv6 CIDR 區塊。
-
-
設定子網路
-
針對可用區域數量,選擇 2。建議至少使用兩個可用區域,以實現高可用性。
-
針對公用子網路數量,選擇 2。
-
在 Number of private subnet (私有子網路數量) 中,選擇 2。
-
您可以保留公有子網路的預設 CIDR 區塊,或者您也可以展開自訂子網路 CIDR 區塊並輸入 CIDR 區塊。如需詳細資訊,請參閱子網路 CIDR 區塊。
-
-
若為 NAT 閘道,請選擇每個 AZ 1 個以提高彈性。
-
對於僅限輸出的網際網路閘道,如果選擇包含 IPv6 CIDR 區塊,請選擇是。
-
若為 VPC 端點,請保留預設值 (S3 閘道)。此選項沒有任何費用。如需詳細資訊,請參閱適用於 Amazon S3 的 VPC 端點類型。
-
對於 DNS 選項,保留預設的設定。
-
選擇建立 VPC。
設定 Lambda 函數
若要在建立函數時設定 VPC
開啟 Lambda 主控台中的 函數頁面
。 -
選擇建立函數。
-
在 Basic information (基本資訊) 下,對於 Function name (函數名稱),為您的函數輸入名稱。
-
展開 Advanced settings (進階設定)。
-
選取啟用 VPC,然後選擇一個 VPC。
-
(選擇性) 若要允許傳出 IPv6 流量,請選取允許雙堆疊子網路的 IPv6 流量。
-
對於子網路,選取所有私有子網路。私有子網路可透過 NAT 閘道存取網際網路。將函數連線到公有子網路並不會為其提供網際網路存取。
注意
如果您選取允許雙堆疊子網路的 IPv6 流量,則所有選取的子網路均必須具有 IPv4 CIDR 區塊和 IPv6 CIDR 區塊。
-
對於安全群組,選取允許傳出流量的安全群組。
-
選擇 Create function (建立函數)。
Lambda 會自動使用 AWSLambdaVPCAccessExecutionRole AWS 受管政策建立執行角色。此政策中的許可僅適用於為 VPC 組態建立彈性網路介面,而非調用函數。若要套用最低權限許可,可以在建立函數和 VPC 組態後,從執行角色中移除 AWSLambdaVPCAccessExecutionRole 政策。如需詳細資訊,請參閱所需的 IAM 許可。
若要為現有函數設定 VPC
若要將 VPC 組態新增至現有函數,函數的執行角色必須擁有建立和管理彈性網路介面的許可。AWSLambdaVPCAccessExecutionRole AWS 受管政策包含必要的許可。若要套用最低權限許可,可以在建立 VPC 組態後,從執行角色中移除 AWSLambdaVPCAccessExecutionRole 政策。
開啟 Lambda 主控台中的 函數頁面
。 -
選擇一個函數。
-
選擇組態索引標籤,然後選擇 VPC。
-
在 VPC 下,選擇 Edit (編輯)。
-
選取 VPC。
-
(選擇性) 若要允許傳出 IPv6 流量,請選取允許雙堆疊子網路的 IPv6 流量。
-
對於子網路,選取所有私有子網路。私有子網路可透過 NAT 閘道存取網際網路。將函數連線到公有子網路並不會為其提供網際網路存取。
注意
如果您選取允許雙堆疊子網路的 IPv6 流量,則所有選取的子網路均必須具有 IPv4 CIDR 區塊和 IPv6 CIDR 區塊。
-
對於安全群組,選取允許傳出流量的安全群組。
-
選擇 Save (儲存)。
測試函數
使用下列範例程式碼,確認 VPC 連線的函數可以連線到公有網際網路。如果成功,程式碼會傳回 200
狀態碼。如果失敗,函數會逾時。
如果您已擁有 VPC,但需要設定 Lambda 函數的公有網際網路存取,請遵循下列步驟。此程序假設您的 VPC 擁有至少兩個子網路。如果沒有兩個子網路,請參閱《Amazon VPC 使用者指南》中的建立子網路。
驗證路由表組態
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
選擇 VPC ID。
-
向下捲動至資源映射區段。請注意路由表映射。開啟映射至子網路的每個路由表。
-
向下捲動至路由索引標籤。檢閱路由以確定下列其中一項是否為 true。每個需求都必須透過單獨的路由表來滿足。
-
網際網路流量 (IPv4 為
0.0.0.0/0
、IPv6 為::/0
) 會路由至網際網路閘道 (igw-xxxxxxxxxx
)。這意味著與路由表相關聯的子網路是公有子網路。注意
如果子網路沒有 IPv6 CIDR 區塊,則只能看到 IPv4 路由 (
0.0.0.0/0
)。範例 公有子網路路由表
-
IPv4 (
0.0.0.0/0
) 的網際網路流量會路由至與公有子網路相關聯的 NAT 閘道 (nat-xxxxxxxxxx
)。這意味著子網路是私有子網路,可透過 NAT 閘道存取網際網路。注意
如果子網路具有 IPv6 CIDR 區塊,路由表也必須將網際網路 IPv6 流量 (
::/0
) 路由至僅限輸出的網際網路閘道 (eigw-xxxxxxxxxx
)。如果子網路沒有 IPv6 CIDR 區塊,則只能看到 IPv4 路由 (0.0.0.0/0
)。範例 私有子網路路由表
-
-
重複上述步驟,直到您已檢閱 VPC 中與子網路關聯的每個路由表,並確認您有一個具有網際網路閘道的路由表,以及一個具有 NAT 閘道的路由表。
如果沒有兩個路由表,其中一個可路由到網際網路閘道,另一個可路由到 NAT 閘道,請依照下列步驟建立缺少的資源和路由表項目。
請依照下列步驟建立路由表,並將其與子網路關聯。
若要使用 Amazon VPC 主控台建立自訂路由表
-
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中,選擇 Route tables (路由表)。
-
選擇 Create route table (建立路由表)。
-
(選用) 針對 Name (名稱),輸入路由表的名稱。
-
在 VPC 中,選擇您的 VPC。
-
(選用) 若要新增標籤,請選擇 Add new tag (新增標籤),然後輸入標籤鍵和標籤值。
-
選擇 Create route table (建立路由表)。
-
在 Subnet associations (子網關聯) 標籤上,選擇 Edit subnet associations (編輯子網關聯)。
-
選取子網路的核取方塊以和路由表建立關聯。
-
選擇 Save associations (儲存關聯)。
請依照下列步驟建立網際網路閘道,將其連接至 VPC,並將其新增至公有子網路的路由表。
建立網際網路閘道
在 https://console.aws.amazon.com/vpc/
開啟 Amazon VPC 主控台。 -
在導覽窗格中,選擇 Internet gateways (網際網路閘道)。
-
選擇建立網際網路閘道。
-
(可選) 輸入網際網路閘道的名稱。
-
(選用) 若要新增標籤,請選擇 Add new tag (新增標籤),然後輸入標籤金鑰和值。
-
選擇建立網際網路閘道。
-
從畫面頂端的橫幅中選擇附接至 VPC,選取可用的 VPC,然後選擇附接網際網路閘道。
-
選擇 VPC ID。
-
再次選擇 VPC ID 以開啟詳細資訊頁面。
-
向下捲動至資源映射區段,然後選擇子網路。子網路詳細資訊會顯示在新索引標籤中。
-
選擇路由表下方的連結。
-
選擇路由表 ID 以開啟路由表詳細資訊頁面。
-
在路由下,選擇編輯路由。
-
選擇新增路由,然後在目的地方塊中輸入
0.0.0.0/0
。 -
對於目標,選取網際網路閘道,然後選擇先前建立的網際網路閘道。如果子網路具有 IPv6 CIDR 區塊,還必須將
::/0
的路由新增至相同的網際網路閘道。 -
選擇 Save changes (儲存變更)。
請依照下列步驟建立 NAT 閘道,將其與公有子網路建立關聯,然後將其新增至私有子網路的路由表。
若要建立 NAT 閘道並將其與公有子網路建立關聯
-
在導覽窗格中,選擇 NAT 閘道。
-
選擇建立 NAT 閘道。
-
(可選) 輸入 NAT 閘道的名稱。
-
對於子網路,選取 VPC 中的公有子網路。(公有子網路是指可直接路由至其路由表中網際網路閘道的子網路。)
注意
NAT 閘道與公有子網路關聯,但路由表項目位於私有子網路中。
-
對於彈性 IP 配置 ID,選取彈性 IP 位址,或選擇配置彈性 IP。
-
選擇建立 NAT 閘道。
若要將路由新增至私有子網路路由表中的 NAT 閘道
-
在導覽窗格中,選擇 Subnets (子網)。
-
選取 VPC 中的私有子網路。(私有子網路是指不可路由至其路由表中網際網路閘道的子網路。)
-
選擇路由表下方的連結。
-
選擇路由表 ID 以開啟路由表詳細資訊頁面。
-
向下捲動並選擇路由索引標籤,然後選擇編輯路由
-
選擇新增路由,然後在目的地方塊中輸入
0.0.0.0/0
。 -
對於目標,選取 NAT 閘道,然後選擇先前建立的 NAT 閘道。
-
選擇 Save changes (儲存變更)。
請依照下列步驟建立僅限輸出的網際網路閘道,並將其新增至私有子網路的路由表。
建立輸出限定網際網路閘道
在導覽窗格中,選擇輸出限定網際網路閘道。
選擇建立輸出限定網際網路閘道。
-
(選用) 輸入名稱。
-
選取要在其中建立輸出限定網際網路閘道的 VPC。
選擇建立輸出限定網際網路閘道。
-
選擇已附接 VPC ID 下方的連結。
-
選擇 VPC ID 下方的連結,以開啟 VPC 詳細資訊頁面。
-
向下捲動至資源映射區段,然後選擇私有子網路。(私有子網路是指不可路由至其路由表中網際網路閘道的子網路。) 子網路詳細資訊會顯示在新索引標籤中。
-
選擇路由表下方的連結。
-
選擇路由表 ID 以開啟路由表詳細資訊頁面。
-
在路由下,選擇編輯路由。
-
選擇新增路由,然後在目的地方塊中輸入
::/0
。 -
對於目標,選取僅限輸出的網際網路閘道,然後選擇先前建立的閘道。
-
選擇 Save changes (儲存變更)。
設定 Lambda 函數
若要在建立函數時設定 VPC
開啟 Lambda 主控台中的 函數頁面
。 -
選擇建立函數。
-
在 Basic information (基本資訊) 下,對於 Function name (函數名稱),為您的函數輸入名稱。
-
展開 Advanced settings (進階設定)。
-
選取啟用 VPC,然後選擇一個 VPC。
-
(選擇性) 若要允許傳出 IPv6 流量,請選取允許雙堆疊子網路的 IPv6 流量。
-
對於子網路,選取所有私有子網路。私有子網路可透過 NAT 閘道存取網際網路。將函數連線到公有子網路並不會為其提供網際網路存取。
注意
如果您選取允許雙堆疊子網路的 IPv6 流量,則所有選取的子網路均必須具有 IPv4 CIDR 區塊和 IPv6 CIDR 區塊。
-
對於安全群組,選取允許傳出流量的安全群組。
-
選擇 Create function (建立函數)。
Lambda 會自動使用 AWSLambdaVPCAccessExecutionRole AWS 受管政策建立執行角色。此政策中的許可僅適用於為 VPC 組態建立彈性網路介面,而非調用函數。若要套用最低權限許可,可以在建立函數和 VPC 組態後,從執行角色中移除 AWSLambdaVPCAccessExecutionRole 政策。如需詳細資訊,請參閱所需的 IAM 許可。
若要為現有函數設定 VPC
若要將 VPC 組態新增至現有函數,函數的執行角色必須擁有建立和管理彈性網路介面的許可。AWSLambdaVPCAccessExecutionRole AWS 受管政策包含必要的許可。若要套用最低權限許可,可以在建立 VPC 組態後,從執行角色中移除 AWSLambdaVPCAccessExecutionRole 政策。
開啟 Lambda 主控台中的 函數頁面
。 -
選擇一個函數。
-
選擇組態索引標籤,然後選擇 VPC。
-
在 VPC 下,選擇 Edit (編輯)。
-
選取 VPC。
-
(選擇性) 若要允許傳出 IPv6 流量,請選取允許雙堆疊子網路的 IPv6 流量。
-
對於子網路,選取所有私有子網路。私有子網路可透過 NAT 閘道存取網際網路。將函數連線到公有子網路並不會為其提供網際網路存取。
注意
如果您選取允許雙堆疊子網路的 IPv6 流量,則所有選取的子網路均必須具有 IPv4 CIDR 區塊和 IPv6 CIDR 區塊。
-
對於安全群組,選取允許傳出流量的安全群組。
-
選擇 Save (儲存)。
測試函數
使用下列範例程式碼,確認 VPC 連線的函數可以連線到公有網際網路。如果成功,程式碼會傳回 200
狀態碼。如果失敗,函數會逾時。