全部產品
Search
文件中心

Function Compute:配置網路

更新時間:Jul 18, 2024

您在Function Compute建立的函數,預設可以通過公網調用,無法通過VPC調用。如果您需要函數能夠訪問VPC內的資源,或允許指定的VPC來調用函數,那麼您需要手動為服務配置網路訪問能力。網路設定為服務等級,即對服務下的所有函數生效。本文介紹如何通過Function Compute控制台為服務配置網路。

注意事項

  • 為服務綁定VPC資源時,請確保配置的服務角色包含vpc:DescribeVSwitchAttributesvpc:DescribeVpcAttribute許可權。

  • 針對使用ACR企業版執行個體容器鏡像建立的Custom Container函數,為該函數所在服務配置訪問VPC的能力時,專用網路和交換器的選擇必須遵循以下原則。

    • 如果ACR企業版執行個體的存取控制頁面的訪問 IP存在預設解析標識,則服務的專用網路和交換器必須設定為預設解析的IP地址對應的專用網路和交換器。db-serviceconf-default

    • 如果ACR企業版執行個體的存取控制頁面的訪問 IP不存在預設解析標識,則服務的專用網路和交換器可以設定為該執行個體綁定的任意一組。db-serviceconf-nodefault

網路訪問能力

使用VPC功能會降低Function Compute的冷啟動效率,建議非必要勿配置該功能。您可優先選擇使用RAM授權方式訪問資源,例如Table StoreTablestore

通過網路地址訪問函數或通過函數訪問網路地址時,會產生流量。流量可分為以下類型。

  • 公網流量:訪問Internet地址,例如阿里雲官網、淘寶網和雲端服務的公網地址。

  • VPC內網流量:訪問使用者VPC內的地址,例如RDS地址、NAS地址和VPC中ECS的內網地址。

根據對網路的不同設定,函數有以下網路訪問能力,您可按需設定。

  • 函數出流量:是否允許函數訪問公網或VPC內資源的出流量,對應的配置包含允許訪問 VPC允許函數訪問公網

    表 1. 函數出流量

    網路設定

    說明

    僅允許函數訪問公網

    通過函數網路訪問公網和內網,禁止通過使用者VPC訪問。所需的網路設定如下:

    • 設定允許訪問 VPC

    • 設定允許函數訪問公網

    僅允許函數訪問VPC

    僅通過使用者VPC訪問公網和內網,適用於PrivateZone、NAT Gateway和函數綁定VPC等情境。所需的網路設定如下:

    • 設定允許訪問 VPC,並配置允許函數訪問的VPC資訊。

    • 設定允許函數訪問公網

    允許函數既能訪問公網,也能訪問VPC

    通過函數網路訪問公網和通過使用者VPC訪問內網。所需的網路設定如下:

    • 設定允許訪問 VPC,並配置允許函數訪問的VPC資訊。

    • 設定允許函數訪問公網

    既不允許函數訪問公網,也不允許訪問VPC

    通過函數網路訪問內網,禁止訪問公網和禁止通過使用者VPC訪問。所需的網路設定如下:

    • 設定允許訪問 VPC

    • 設定允許函數訪問公網

  • 函數入流量:是否允許通過公網地址或VPC地址訪問函數的入流量,對應的配置為僅允許指定 VPC 調用函數

    表 2. 函數入流量

    網路設定

    說明

    允許通過公網和VPC同時訪問函數

    函數建立完成後,預設可以通過公網和VPC調用函數。預設的網路設定如下:

    • 設定僅允許指定 VPC 調用函數

    僅允許通過VPC訪問函數

    允許通過指定的VPC調用函數,並禁止通過公網調用函數。所需的網路設定如下:

    • 設定僅允許指定 VPC 調用函數,並配置允許調用函數的VPC資訊。

Function Compute支援的可用性區域

展開查看Function Compute支援的可用性區域

地區

地區ID

Function Compute支援的可用性區域

華東1(杭州)

cn-hangzhou

  • cn-hangzhou-h

  • cn-hangzhou-i

  • cn-hangzhou-j

  • cn-hangzhou-k

  • cn-hangzhou-f

  • cn-hangzhou-g

華東2(上海)

cn-shanghai

  • cn-shanghai-m

  • cn-shanghai-l

  • cn-shanghai-n

  • cn-shanghai-b

  • cn-shanghai-e

  • cn-shanghai-g

  • cn-shanghai-f

華北1(青島)

cn-qingdao

cn-qingdao-c

華北2(北京)

cn-beijing

  • cn-beijing-i

  • cn-beijing-h

  • cn-beijing-k

  • cn-beijing-j

  • cn-beijing-l

  • cn-beijing-c

  • cn-beijing-e

  • cn-beijing-g

  • cn-beijing-f

華北3(張家口)

cn-zhangjiakou

  • cn-zhangjiakou-b

  • cn-zhangjiakou-c

  • cn-zhangjiakou-a

華北5(呼和浩特)

cn-huhehaote

  • cn-huhehaote-a

  • cn-huhehaote-b

華南1(深圳)

cn-shenzhen

  • cn-shenzhen-e

  • cn-shenzhen-d

  • cn-shenzhen-f

西南1(成都)

cn-chengdu

  • cn-chengdu-a

  • cn-chengdu-b

中國香港

cn-hongkong

  • cn-hongkong-d

  • cn-hongkong-c

  • cn-hongkong-b

新加坡

ap-southeast-1

  • ap-southeast-1a

  • ap-southeast-1c

  • ap-southeast-1b

澳大利亞(雪梨)

ap-southeast-2

  • ap-southeast-2a

  • ap-southeast-2b

馬來西亞(吉隆坡)

ap-southeast-3

ap-southeast-3a

印尼(雅加達)

ap-southeast-5

  • ap-southeast-5a

  • ap-southeast-5b

日本(東京)

ap-northeast-1

  • ap-northeast-1c

  • ap-northeast-1b

  • ap-northeast-1a

英國(倫敦)

eu-west-1

eu-west-1a

德國(法蘭克福)

eu-central-1

  • eu-central-a

  • eu-central-1a

  • eu-central-1b

美國(矽谷)

us-west-1

  • us-west-1a

  • us-west-1b

美國(維吉尼亞)

us-east-1

  • us-east-1b

  • us-east-1a

印度(孟買)關停中

ap-south-1

  • ap-south-1a

  • ap-south-1b

關於各地區最新支援的可用性區域,您可以在OpenAPI Explorer調用APIGetAccountSettings - 擷取可用性區域擷取。

如果您的資源所在的可用性區域不在Function Compute支援的可用性區域中,可以通過在您的VPC環境中建立一個Function Compute支援的可用性區域內的交換器,並在Function Compute的服務的VPC配置中設定此交換器ID。由於同一VPC內不同交換器之間私網互連,因此Function Compute可以通過該交換器訪問在其他可用性區域的VPC內的資源。具體步驟,請參見遇到vSwitch is in unsupported zone的錯誤怎麼辦?

前提條件

配置網路和角色

Function Compute訪問VPC的配置和許可權的配置是服務等級的,為一個服務配置了訪問VPC的能力後,此服務下的所有函數都可以訪問VPC。

  1. 登入Function Compute控制台,在左側導覽列,單擊服務及函數
  2. 在頂部功能表列,選擇地區,然後在服務列表頁面,單擊目標服務操作列的配置
  3. 在編輯服務頁面的角色配置地區,選擇服務角色,授予服務訪問VPC的許可權。

    推薦您按照最小許可權原則為您提供的角色授權。如需更細粒度的許可權管控,請參見權限原則及樣本

  4. 網路設定地區,根據實際情況修改以下配置項。

    • 允許訪問 VPC:是否允許函數訪問VPC內資源。取值說明如下。

      • :允許函數訪問VPC內資源。選擇後,需選擇配置方式,取值說明如下:

        • (推薦)自動設定Function Compute會為您自動建立專用網路、交換器和安全性群組等資源,無需您手動建立。建立完成後,也可再次按需修改。

          說明

          自動建立的網路資源均以fc.auto.create開頭。

        • 自訂配置:您需手動選擇已有的網路資源,請確保您已提前建立好相關資源。vpc_config_new_console

          • 專用網路:在列表中選擇要訪問的VPC ID。

          • 交換器:在列表中選擇交換器ID,至少需選擇一個交換器ID。

            該欄位限定了Function Compute可以訪問的子網,建議設定兩個或多個交換器ID。當一個可用性區域出現故障或IP地址不足時,您的函數可以在其他子網下運行。

          • 安全性群組:在列表中選擇安全性群組ID。

            此安全性群組是Function Compute所在的安全性群組,安全性群組限定了Function Compute在VPC中的出入站規則。需要設定您的VPC所在安全性群組的入站規則為允許Function Compute所在的安全性群組訪問。否則,Function Compute無法順暢地訪問您的VPC內資源。

      • :不允許函數訪問VPC內資源。

    • 固定公網 IP:是否通過NAT Gateway和Elastic IP Address地址獲得一個固定的公網出口IP地址。具體資訊,請參見配置固定公網IP地址

    • 允許函數訪問公網:是否允許函數訪問公網。取值說明如下。

      • :允許函數訪問公網。

      • :不允許函數訪問公網。

    • 僅允許指定 VPC 調用函數:是否允許指定的VPC調用函數。取值說明如下。

      • :允許指定的VPC調用函數。需注意以下事項。

        • 同一個服務最多綁定20個VPC。

        • 設定僅允許指定VPC調用函數後,使用觸發器調用函數不受影響。

        • VPC綁定後對服務的所有版本和別名生效。

        • 設定允許指定VPC調用函數後,會拒絕來自公網和其他VPC的調用請求,StatusCode為403,ErrorCodeAccessDenied,錯誤資訊為Resource access is bound by VPC: VPC ID

        • 只允許使用私網HTTP存取點綁定VPC,不允許使用公網存取點和私網HTTPS存取點綁定VPC。

      • :不允許指定VPC調用函數,僅允許通過公網調用函數。

  5. 單擊儲存

常見問題

  • 為什麼Function Compute無法成功接入VPC調試?

    如果您的服務中已經設定允許函數訪問VPC,卻無法成功接入VPC,可能原因如下。

    • 交換器所在的子網故障或子網中的IP地址已用盡,您可以在配置VPC時提供兩個或者多個交換器ID,如果一個可用性區域出現故障,您的函數可以在其他可用性區域運行,提高容錯能力。

    • 安全性群組配置錯誤,請您按照以下要求配置安全性群組。

      • 需要設定VPC中的安全性群組的入站規則為允許Function Compute所在的安全性群組訪問。

      • 安全性群組出口方向需要允許ICMP協議,Function Compute會通過ICMP協議檢查VPC網路聯通性。

      安全性群組的具體配置步驟,請參見添加安全性群組規則

  • 新增網路資源時,發現資源不足該怎麼辦?

    如果您在建立VPC網路資源時,自動設定提供的網路前置長度為24,可用IP地址數量是252個,如果執行個體數量過多,有可能會超出限制。此時,您需手動調整交換器IP地址網段,以及對應的安全性群組。

故障排查

Function Compute無法在設定vpcConfig時對訪問VPC的許可權進行檢測,而需要在執行函數時檢測,因此在通過InvokeFunction介面調用函數時會引入一些新的錯誤類型。下表描述了接入VPC時一些常見的錯誤,以便您迅速排查問題。

錯誤碼

狀態代碼

問題原因

解決方案

InvalidArgument

400

Function Compute不支援您提供的vSwitchId所在的可用性區域。

重新設定vSwitchId。具體資訊,請參見Function Compute支援的可用性區域

未找到vpcConfig中的vpcIdvSwitchIdssecurityGroupId對應的資源。

檢查vpcConfig參數設定。

設定的交換器或安全性群組不在相應的VPC中。

檢查vpcConfig參數設定,確保vSwitchIdsecurityGroupId對應的資源在vpcId對應的VPC中。

AccessDenied

403

未提供對ENI的操作授權。

檢查服務的許可權。更多資訊,請參見授予Function Compute訪問其他雲端服務的許可權

ResourceExhausted

429

交換器的網段內可用IP不足,Function Compute無法建立更多的ENI。

建立一個網段更大的交換器,並更新vpcConfigvSwitchId參數。

說明

建議您使用/24/16網段。

相關文檔

  • 如需訪問VPC內的資料庫,建議您使用配置IP地址白名單的方式訪問資料庫,白名單中填寫的IP位址區段為您在此頁面配置的交換器所屬IP位址區段。更多資訊,請參見訪問資料庫

  • 如需限制函數公網訪問出口流量,需使用固定IP地址來實現。具體操作,請參見配置固定公網IP地址