部署包裝程式 API

Oracle Blockchain Platform Digital Assets Edition 允許為 App Builder 產生的鏈碼內的所有控制器 API 產生包裝函式 API。本主題提供在堆疊資源管理程式中部署包裝函式 API 套件,並使用關聯的 Postman 集合測試包裝函式 API 的詳細步驟。

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

  1. <ChaincodeName>WrapperAPI.zip:此檔案包含在 Oracle Cloud Infrastructure Resource Manager 中部署包裝函式 API 所需的 Terraform 命令檔。
  2. <ChaincodeName>_WrapperAPI.postman_collection.json:Postman 集合,用於在部署後測試包裝函式 API。

若要部署包裝函式 API,必須在 OCI 資源管理程式中使用 WrapperAPI.zip 檔案。

先決條件

以下是部署包裝函式 API 套件的先決條件:

  • 包裝函式 API 套件必須使用應用程式產生器產生。
  • 套裝程式應包含包裝程式 API 的所有必要組態變數值和端點值。
部署包裝程式 API 套件
  1. 登入 OCI。
    開啟 OCI 主控台並登入:https://cloud.oracle.com/
    確定您位於將部署堆疊的區間中。
  2. 展開瀏覽 (Navigation) 功能表。選取開發人員服務。在資源管理員下,選取堆疊
    就會開啟堆疊的「資源管理程式」介面。您可以使用 Terraform 組態檢視現有的堆疊、建立新堆疊及管理您的基礎架構即程式碼。
  3. 按一下建立堆疊來建立新的堆疊。
  4. 設定堆疊資訊。
    1. Terraform 組態區段中,選取我的組態
    2. 在「堆疊組態」的「Terraform 組態設定來源」中,選取「 .Zip 檔案」。
    3. 按一下瀏覽,然後瀏覽至您的包裝函式 API 壓縮檔。
    4. 上傳之後,請確定堆疊名稱正確無誤。
    5. 所有剩餘的設定都可保留為預設值。按下一步
  5. 設定堆疊變數。
    1. 確認所有組態變數值均正確無誤,並符合包裝函式 API 套件中指定的組態變數,以符合部署的需求。
    2. 若為 ocir_user_name ,請輸入您 OCI 帳戶的電子郵件地址。
    3. 若為 ocir_user_password ,請輸入您的密碼,也就是您的 Oracle Cloud Infrastructure 認證權杖。您可以在 OCI 主控台中的使用者設定值底下產生此權杖。「認證權杖」可作為登入 Oracle Cloud Infrastructure Registry (OCIR) 的密碼。
      如需產生「認證記號」的詳細指示,請參閱產生認證記號
    4. 所有剩餘的設定都可保留為預設值。按下一步
  6. 複查堆疊資訊。若所有項目均正確,按一下建立
  7. 執行 Terraform 計畫。
    1. 在堆疊的詳細資訊頁面上,按一下計畫以起始建立執行計畫。
    2. 選擇性設定工作計畫。您可以編輯預設名稱或選取進階選項,以變更調整設定值的提供者版本。
    3. 按一下計畫以建立和執行計畫工作。
      這將會剖析您的 Terraform 組態、產生執行計畫,以及執行下列作業的計畫:
      • 請驗證 Terraform 命令檔,確定沒有語法或組態錯誤。
      • 模擬資源建立處理作業,不對實際基礎架構進行任何變更。
      • 提供列出命令檔想要建立、修改或毀棄之資源的輸出摘要。
    4. 監督堆疊中「工作 (Jobs)」區段的狀態。順利完成計畫之後,請複查輸出以確認將建立的資源數目,並確認沒有任何問題。
  8. 將 Terraform 計畫套用至堆疊。
    1. 在堆疊的詳細資訊頁面上,按一下套用
    2. 在「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 特定的必要有效負載。

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


影像顯示 Postman 使用產生的閘道 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 (OCIR) 時,若未進行適當的認證,就會發生此錯誤。

雖然包裝函式 API 套件包含一個在發送影像之前執行 docker login 的指令碼,但可確保適當的驗證,此錯誤仍會隨意發生。系統在推送映像檔時無法正確辨識 Docker 認證步驟時,通常會發生這種情況。

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

  1. 毀棄現有資源:

    按一下「OCI 堆疊資源管理程式」中的毀棄,以毀棄建置處理作業期間建立的所有資源。

  2. 重新套用堆疊:

    毀棄資源之後,請再按一下套用以重新建置堆疊。這會觸發建立必要資源 (包括適當的 Docker 認證),並且應該解決問題。

一般部署失敗:間斷問題
有時候,堆疊部署可能會因為與停駐程式相關的隨機問題而失敗。在這種情況下,請遵循下列步驟來解決問題:
  1. 按一下毀棄,即可移除在失敗建置期間建立的所有資源。
  2. 資源毀棄之後,請瀏覽回堆疊並按一下套用,即可重新部署堆疊。

此處理通常會解決間歇性問題,讓部署順利進行。