容器鏡像相比于代碼包有更好的可移植性和更豐富的工具鏈生態,但其自帶的與應用無關的數據極易使鏡像臃腫,GB級鏡像會導致分鐘級冷啟動。開啟鏡像加速可分兩階段共提速約90%,將分鐘級的鏡像拉取縮短至秒級。本文介紹使用ACR企業版實現鏡像啟動加速的使用原理和配置方法等。

使用優勢(相比ACR個人版)

除了擁有ACR個人版的所有鏡像加速功能外,ACR企業版鏡像還具備以下優勢:
  • 單獨的網絡訪問,可配置獨立的VPC安全規則管理倉庫實例的網絡訪問。更多信息,請參見配置專有網絡的訪問控制
  • 獨享的帶寬,拉取鏡像更加敏捷。
  • 鏡像倉庫自帶的鏡像轉換功能,避免函數計算加速鏡像轉換完成前偶發的未加速的冷啟動。

使用原理

對于運行環境為Custom Container且使用容器鏡像服務ACR企業版鏡像的函數,函數計算會在執行函數請求時扮演服務RAM角色,使用臨時的AccessKey拉取加速鏡像。以此,函數中的自定義容器鏡像拉取及容器啟動速度會得到顯著提升。

注意事項

  • 默認支持鏡像加速的地域有華北2(北京)、華北3(張家口)、華東1(杭州)、華東2(上海)、華南1(深圳)、中國香港、新加坡、美國(硅谷)、美國(弗吉尼亞)和日本(東京)。
  • 函數計算在解析ACR企業版鏡像域名時,使用鏡像倉庫實例配置的專有網絡默認解析或云解析PrivateZone自動解析的訪問IP地址。
    • ACR企業版實例的訪問控制頁面的訪問 IP中存在默認解析標識的IP地址為專有網絡默認解析的IP地址。defaultIP
    • ACR企業版實例的訪問控制頁面的訪問 IP中不存在默認解析標識時,該列表下的所有IP地址均為云解析PrivateZone自動解析的IP地址。privatezone-ip
  • 在創建或更新使用ACR企業版(基礎版)鏡像的函數后,請等待加速鏡像生成,加速鏡像通常會在創建或更新函數后5分鐘內完成。函數計算將在函數調用時拉取您的倉庫中的加速鏡像。
  • 在創建或更新使用ACR企業版(標準版或高級版)鏡像的函數后,函數計算將在函數調用時拉取您的倉庫中的加速鏡像。如果您的倉庫內不存在加速鏡像,則需要您開啟鏡像倉庫的鏡像加速功能生成加速鏡像。具體操作步驟,請參見配置方法

配置方法

  1. 開啟鏡像加速。

    ACR企業版的標準版和高級版實例均提供了自帶的加速鏡像轉換功能。鏡像加速可在創建或更新倉庫時開啟,具體步驟,請參見轉換加速鏡像

  2. 選擇加速鏡像。

    在創建或更新函數時,請優先使用_accelerated結尾的加速鏡像并開啟鏡像加速拉取。當函數配置完成后,可直接調用到加速鏡像,確保函數調用自始至終具備加速效果。您可以在創建或更新函數時,通過以下方式選擇加速鏡像:

    • 通過函數計算控制臺選擇加速鏡像。詳細操作,請參見使用控制臺創建函數
    • 通過Serverless Devs配置選擇加速鏡像。詳細信息,請參見YAML規范
      customContainerConfig:
        image: registry-vpc.<regionId>.aliyuncs.com/fc-demo/python-flask:[鏡像版本號_accelerated]
    • 通過SDK配置

其他操作

您可以通過登錄函數計算控制臺或調用GetFunction接口查看鏡像加速的準備狀態。具體步驟,請參見查看鏡像加速準備狀態