建立外掛程式

本頁面說明如何建立 Service Extensions 外掛程式,以便使用 Google Cloud 服務實作擴充功能。

這項功能目前為 Media CDN 的預先發布版。

如需產品總覽,請參閱「Service Extensions 總覽」。

事前準備

  1. 準備並上傳建立外掛程式所需的檔案。

  2. 取得必要的 Identity and Access Management (IAM) 角色和權限。

  3. 啟用 Network Services API (如果尚未啟用)。

    gcloud services enable networkservices.googleapis.com
    
  4. 如要啟用 Media CDN 外掛程式的記錄功能,請啟用 Network Actions API。

    gcloud services enable networkactions.googleapis.com
    

建立外掛程式資源

建立外掛程式資源時,必須指定含有外掛程式程式碼的映像檔,以及外掛程式的標籤和記錄選項。

控制台

如要建立外掛程式,請按照下列步驟操作:

  1. 前往 Google Cloud 控制台的「Service Extensions」頁面。

    前往 Service Extensions

  2. 按一下「外掛程式」分頁標籤。

  3. 按一下「建立外掛程式」。

  4. 在「Basics」(基本) 部分執行下列操作:

    1. 在「Scope」(範圍) 部分,選取「Global」(全域) 或「Regional」(區域)。

      如果將範圍設為「Regional」(區域),請一併選取區域。

    2. 輸入不重複的外掛程式名稱。

      名稱開頭必須為小寫字母,後方最多可接 62 個小寫字母、數字或連字號,但結尾不得為連字號。

    3. 選用:輸入外掛程式的簡短說明,最多 1024 個字元。

  5. 在「Wasm image」(Wasm 映像檔) 部分,執行下列操作:

    1. 在「Plugin version name」(外掛程式版本名稱) 部分,指定外掛程式版本名稱。

      名稱開頭必須為小寫字母,後方最多可接 62 個小寫字母、數字或連字號,但結尾不得為連字號。

    2. 選用:在「Plugin version description」(外掛程式版本說明),輸入外掛程式版本的簡短說明,最多 1024 個字元。

    3. 在「Image URL」(映像檔網址) 部分,輸入 Artifact Registry 窗格中含有 Wasm 模組的一般構件或容器映像檔網址。使用一般存放區的選項目前為預先發布版。

      如要指定 Docker 存放區中的容器映像檔,也可以按一下「Select」(選取),瀏覽並選取該映像檔。Artifact Registry 窗格會顯示與目前專案連結的存放區資料夾。

      如要選取其他專案的映像檔,請確認 Service Extensions 有權存取該映像檔,然後按一下專案名稱旁的「Change」(變更)。

  6. 選用:在「Plugin configuration」(外掛程式設定) 區段中,如要將設定資料與外掛程式建立關聯,請勾選「Add plugin configuration」(新增外掛程式設定) 核取方塊,然後選取下列任一選項:

    • 上傳外掛程式設定檔。如果檔案大小小於 900 KiB 且位於本機磁碟,請按一下「Browse」(瀏覽),找出並選取檔案。

    • 從 Artifact Registry 選取外掛程式設定映像檔或構件。在「Artifact Registry」窗格中,輸入含有 Wasm 模組的一般構件或容器映像檔網址。使用一般存放區的選項目前為預先發布版。

      如要指定 Docker 存放區中的容器映像檔,您也可以按一下「Select」(選取),瀏覽並選取該映像檔。Artifact Registry 窗格會顯示與目前專案連結的存放區資料夾。

  7. 選用:在「標籤」部分,按一下「新增標籤」。接著,在顯示的資料列中執行下列操作:

    1. 在「Key」(鍵) 中輸入鍵名稱。
    2. 在「值」部分,輸入鍵的值。

    最多可新增 64 個鍵/值組合。如要新增更多鍵/值組合,請按一下「Add label」(新增標籤)。

    如要進一步瞭解標籤,請參閱「建立及更新專案標籤」。

  8. 在「Encryption」(加密) 部分,選擇外掛程式的加密機制。這個選項僅適用於區域外掛程式。

    • Google 代管的加密金鑰。使用 Google 預設加密機制加密外掛程式內容。
    • Cloud KMS 金鑰。使用透過 Cloud Key Management Service 建立的客戶自行管理的加密金鑰,加密外掛程式內容。在本例中,「金鑰管理類型」請選取「Cloud KMS」。然後選取 Cloud KMS 金鑰。
  9. 選用:在「Logging」(記錄) 部分,選取「Enable logging」(啟用記錄功能),然後執行下列操作:

    • 在「Sample rate」(取樣率) 中,指定介於 0 和 1 之間的值。0 值表示系統不會儲存記錄訊息。預設值 1 表示系統會儲存所有記錄訊息。介於 0.0 和 1.0 之間的浮點值,表示儲存的記錄訊息百分比。

    • 在「Minimum log level」(最低記錄層級),選取要匯出至 Cloud Logging 的外掛程式記錄訊息最低嚴重性等級。預設值為 Info and higher。

  10. 點選「建立」。

gcloud

  1. 執行 gcloud service-extensions wasm-plugins create 指令,建立外掛程式:

    gcloud service-extensions wasm-plugins create WASM_PLUGIN \
        --description=PLUGIN_DESCRIPTION \
        --location=LOCATION \
        --labels=[LABELS,...] \
        --log-config=[LOG_CONFIG,...] \
        --image=IMAGE \
        --main-version=MAIN_VERSION \
        --plugin-config=PLUGIN_CONFIG |
            --plugin-config-file=PLUGIN_CONFIG_FILE |
            --plugin-config-uri=PLUGIN_CONFIG_URI \
        --kms-key-name=KEY_NAME
    

    更改下列內容:

    • WASM_PLUGIN:外掛程式的 ID 或完整名稱
    • PLUGIN_DESCRIPTION:外掛程式說明
    • LOCATION:外掛程式的位置,可以是 global 或區域
    • LABELS:以半形逗號分隔的鍵/值組合標籤
    • LOG_CONFIG:外掛程式的記錄選項。如果 enable 選項設為 false,系統就不會擷取外掛程式的記錄。如要啟用記錄功能,請將 enable 選項設為 true。接著指定下列詳細資料:

      • sample-rate:活動記錄的取樣率,值介於 0 和 1 之間。值 0 表示不儲存記錄訊息。預設值 1 表示系統會儲存所有記錄訊息。介於 0.0 和 1.0 之間的浮點值,表示儲存的記錄訊息百分比。

      • min-log-level:要匯出至 Cloud Logging 的外掛程式記錄訊息最低嚴重性等級。預設值為 INFO。

    • IMAGE:包含 Wasm 模組的構件 URI,儲存在 Artifact Registry 存放區中。指定其他專案的容器映像檔前,請確認 Service Extensions 有權存取該映像檔。

    • MAIN_VERSION:要建立並設為主要 (有效) 版本的版本 ID。

    • PLUGIN_CONFIG、PLUGIN_CONFIG_FILE 或 PLUGIN_CONFIG_URI:選用的設定資料,可分別指定為文字、本機檔案或 Artifact Registry 中的容器映像檔。

    • KEY_NAME:如果是區域性外掛程式,請提供客戶自行管理的加密金鑰完整名稱,格式如下:projects/PROJECT/locations/LOCATION/keyRings/KEYRING_NAME/cryptoKeys/KEY_NAME。

      更改下列內容:

      • PROJECT:金鑰所在專案的 ID
      • LOCATION:金鑰的位置
      • KEYRING_NAME:金鑰環名稱
      • KEY_NAME:金鑰名稱

      如未指定這個選項,系統會使用 Google 預設加密機制。

    例如:

    gcloud service-extensions wasm-plugins create my-plugin \
        --description="This is my plugin." \
        --log-config=enable=true,sample-rate=0.5,min-log-level=INFO \
        --labels=key1=value1,key2=value2 \
        --image=...-docker.pkg.dev/my-project/repository/container:tag \
        --main-version=v1 \
        --plugin-config-file=config.txt
    

    如要部署新版本,請使用 gcloud service-extensions wasm-plugins update 指令。指定新的映像檔和版本名稱:

    gcloud service-extensions wasm-plugins update my-plugin \
        --image=...-docker.pkg.dev/my-project/repository/container:tag \
        --main-version=v2
    

如要執行這些外掛程式,您可以設定 Cloud Load Balancing 擴充功能和 Media CDN 擴充功能。

存取其他專案中的映像檔

您必須先授予 Service Extensions 服務代理專案存放區存取權,並視 Wasm 模組的封裝方式,授予下列其中一項專案權限,才能選取其他專案的映像檔:

  • 一般構件:artifactregistry.files.download
  • 容器映像檔:artifactregistry.repositories.downloadArtifacts

Service Extensions 服務代理的名稱如下:

service-PROJECT_NUMBER@gcp-sa-networkactions.

將 PROJECT_NUMBER 替換為您的專案編號。

後續步驟