建立外掛程式

本頁說明如何建立 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. 在「範圍」部分,選取「全域」或「區域」

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

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

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

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

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

    1. 在「外掛程式版本名稱」部分,指定外掛程式版本的名稱。

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

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

    3. 在「圖片網址」中,輸入含有 Wasm 模組的一般構件或容器映像檔網址,該網址位於 Artifact Registry 窗格中。使用一般存放區的選項位於「預覽」

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

      如要選取其他專案的圖片,請確認服務擴展功能有權存取該圖片,然後按一下專案名稱旁的「變更」

  6. 選用:在「外掛程式設定」部分,如要將設定資料與外掛程式建立關聯,請選取「新增外掛程式設定」核取方塊,然後選取下列任一選項:

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

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

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

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

    1. 在「Key」中輸入金鑰名稱。
    2. 在「值」中輸入索引鍵的值。

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

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

  8. 選用步驟:在「Logging」(記錄) 部分,選取「Enable logging」(啟用記錄功能),然後執行下列操作:

    • 請為「取樣率」指定介於 01 之間的值。0 值表示系統不會儲存記錄訊息。預設值 1 表示系統會儲存所有記錄訊息。介於 0.01.0 之間的浮點值,表示儲存的記錄訊息百分比。

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

  9. 點選「建立」

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
    

    更改下列內容:

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

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

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

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

    • MAIN_VERSION:要建立並設為主要 (有效) 版本的外掛程式版本 ID

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

    例如:

    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 擴充功能

存取其他專案中的圖片

如要從其他專案選取映像檔,服務擴充功能服務代理程式必須有權存取專案存放區,並視 Wasm 模組的封裝方式,對專案具備下列其中一項權限:

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

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

service-PROJECT_NUMBER@gcp-sa-networkactions.iam.gserviceaccount.com

PROJECT_NUMBER 替換為專案編號

後續步驟