部署包裝函式 API

Oracle Blockchain Platform Digital Assets Edition 可以為 Blockchain App Builder 所產生的鏈碼中的所有控制器 API 產生包裝函式 API。完成下列步驟,即可在堆疊資源管理程式中部署包裝函式 API 套裝程式,並使用關聯的 Postman 集合測試包裝函式 API。

當您使用 Blockchain App Builder 產生包裝函式 API 套裝程式時,會在所選目錄中建立兩個具有預設命名慣例的檔案:

  • <ChaincodeName>WrapperAPI.zip:包含要在 Oracle Cloud Infrastructure (OCI) 資源管理程式中部署包裝函式 API 所需之 Terraform 命令檔的存檔檔案。
  • <ChaincodeName>_WrapperAPI.postman_collection.json:建置後用來測試包裝函式 API 的 Postman 集合。

若要部署包裝函式 API,您可以使用 WrapperAPI.zip 檔案在 OCI Resource Manager 中建立堆疊。

必須符合下列先決條件,才能部署包裝函式 API 套裝程式。

  • 包裝程式 API 套裝程式必須使用 Blockchain App Builder 產生。
  • 套裝程式必須包含包裝程式 API 的所有必要組態變數值和端點值。
  1. 登入 OCI。
    開啟 OCI 主控台並登入:https://cloud.oracle.com/ 。請確定您位於將部署堆疊的區間中。
  2. 展開瀏覽功能表。選取開發人員服務。在資源管理程式底下,選取堆疊。
    堆疊的「資源管理程式」介面便會開啟。您可以使用 Terraform 組態檢視現有的堆疊、建立堆疊,以及以程式碼形式管理基礎架構。
  3. 按一下「建立堆疊」。
  4. 設定堆疊資訊。
    1. 在 Terraform 組態區段中,選取我的組態。
    2. 在堆疊組態的 Terraform 組態來源中,選取 .Zip 檔案。
    3. 按一下瀏覽,然後瀏覽至您的包裝函式 API .zip 檔案。
    4. 上傳 .zip 檔案之後,請確定堆疊名稱正確。
    5. 在 Terraform 版本下拉式清單中,選取 v1.2 或更新版本。依照預設,「資源管理程式」會使用最新版本。如果您選取的版本比 v1.2 舊,部署將會失敗。
    6. 所有剩餘的設定值皆可保留為預設值。按下一步。
  5. 設定堆疊變數。
    1. 請確定所有組態變數值都正確無誤,並且符合包裝函式 API 套裝程式中指定的組態變數,以符合您部署的需求。
    2. 在 ocir_user_name 中,輸入與您的 OCI 帳戶關聯的電子郵件地址。
    3. 在 ocir_user_password 中輸入您的密碼,這是您的 OCI 認證權杖。您可以在 OCI 主控台的設定檔或使用者設定值區段中產生此權杖。認證記號的功能即為登入 Oracle Cloud Infrastructure Registry 的密碼。
      如需有關產生認證權杖的詳細資訊,請參閱產生認證權杖。
    4. 所有剩餘的設定值皆可保留為預設值。按下一步。
  6. 複查堆疊資訊。若所有項目皆正確,請按一下建立。
  7. 執行 Terraform 計畫。
    1. 在堆疊的詳細資訊頁面上,按一下計畫以開始建立執行計畫。
    2. 選擇性地設定工作計畫。您可以編輯預設名稱或選取進階選項來變更提供者版本或調整設定值。
    3. 按一下計畫以建立並執行計畫工作。
      已剖析您的 Terraform 組態並產生執行計畫並執行,以完成下列作業:
      • 驗證 Terraform 指令碼以確保沒有語法或組態錯誤。
      • 模擬資源建立處理作業,不對實際的基礎架構進行任何變更。
      • 提供列出命令檔將建立、修改或毀棄之資源的輸出摘要。
    4. 監督堆疊中工作區段的狀態。計畫順利完成之後,請複查輸出以確認將要建立的資源數目,以及確認沒有任何問題。
  8. 將 Terraform 計畫套用至堆疊。
    1. 在堆疊的詳細資訊頁面上,按一下套用。
    2. 在 Terraform 套用面板中,按一下套用。
      套用 Terraform 計畫完成下列工作:
      • 佈建 Terraform 命令檔中定義的所有下列資源:
        • 虛擬雲端網路 (VCN)
        • 應用程式 (OCI 函數)
        • API 閘道
        • API 建置
        • IAM 原則
        • OCI 登錄儲存區域
      • 為包裝程式 API 建立所有必要的基礎架構。
    3. 監督堆疊之工作區段中的狀態,以確保工作順利完成且無錯誤。
  9. 擷取 API 閘道端點。
    1. 套用工作完成之後,請移至套用工作頁面的輸出段落,以檢視產生的輸出值。
    2. 輸出會傳回一個 JSON 物件,其中索引鍵代表端點名稱,而值為其對應的端點值:
      api_gateway_endpoints{"api_gateway_endpoint":"https://grqkdiwsugp3fp2m5z3zgpo4.apigateway.ap-mumbai-1.oci.customer-oci.com/WholesaleCBDC"}
    3. 複製端點。您需要端點才能更新 API Postman 集合。
使用 Postman 來測試包裝函式 API

您可以使用 Postman 來測試包裝函式 API。指定適當的值,以設定包裝程式 API Postman 集合中的所有變數。從 OCI 中提供動態產生之閘道端點的堆疊部署輸出取得 api_gateway_endpoint 值。

在 Postman 集合中的變數更新後,您可以測試包裝函式 API。集合中的每個 API 要求都包含對應包裝函式 API 特定的必要有效負載。

圖 4-1 使用 Postman 測試 API 包裝函式集合


影像顯示 Postman 正在使用產生的閘道 API 從集合執行 API。

下列資訊可用來疑難排解部署及使用包裝程式 API 時的問題。

未授權:ocir_user_name 或 ocir_user_password 無效
使用者名稱或密碼證明資料不正確時,會發生此錯誤。若要解決此問題,請按照下述步驟進行:
  1. 瀏覽至堆疊詳細資訊頁面中的變數區段。
  2. 按一下編輯變數,即可修改使用者名稱和密碼值。
  3. 請以正確的資訊更新證明資料。
  4. 按一下套用以重新建置堆疊。
建置失敗 -「拒絕:只允許匿名使用者讀取公用儲存區域的存取權」
有時部署可能會因下列錯誤而失敗:
denied: Anonymous users are only allowed read access on public repos

這是與堆疊後端的 Docker 作業有關的間歇性問題。具體而言,嘗試將 Docker 映像檔推送至 Oracle Cloud Infrastructure Registry 時若未進行適當認證,就會發生此錯誤。

雖然包裝函式 API 套裝程式包含執行 docker login 命令以確保在推送影像之前進行適當認證的命令檔,但此錯誤仍然會以拼字方式發生。當系統在影像推送時無法正確辨識 Docker 認證步驟時,通常會發生此情況。

如果發生此錯誤,請依照下列步驟來解決問題:

  1. 按一下 OCI 堆疊資源管理程式中的毀棄,即可毀棄在部署處理作業期間建立的所有資源。
  2. 毀棄資源之後,請再按一下套用來重新部署堆疊。這會觸發建立必要的資源,包括正確的 Docker 認證。
一般部署失敗:間歇性問題
堆疊部署有時可能會因為隨機 Docker 相關問題而失敗。發生此情況時,請遵循下列步驟來解決問題:
  1. 按一下毀棄,即可移除在失敗建置期間建立的所有資源。
  2. 資源毀棄之後,請瀏覽回堆疊,然後按一下套用以重新部署堆疊。

這可以解決間歇性問題,並允許成功部署。