什麼是 Apigee Emulator

本頁適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

Apigee Emulator 可讓您在本機開發環境中模擬 Apigee 安裝作業,以便進行測試。Apigee Emulator 不會取代 Apigee 安裝程序進行測試,也沒有相同的功能,但可簡化本機開發環境中的測試。

Apigee Emulator 是以自訂 Docker 映像檔的形式公開提供給開發人員,方便他們在本機開發環境中部署及測試 API Proxy。Docker 映像檔會定期發布至 gcr

準備好部署及測試第一個 API Proxy 時,請使用「模擬器」專區查看及管理模擬器版本,以及已設定模擬器的生命週期。

本節說明如何:

「詳細的模擬器」專區

  • 查看已安裝的不同版本模擬器,以及為每個模擬器版本建立的容器,包括 Docker 和執行階段資訊,以及控制和流量通訊埠。

  • 新增、刪除、啟動、停止、重設、更新及重新整理 Apigee Emulator 容器的檢視畫面,如「管理 Apigee Emulator」一文所述。

  • 查看已部署的應用程式 (請參閱「部署環境」)。

  • 查看有效的測試資源 (請參閱「將測試資源匯出至 Apigee Emulator」)。

管理 Apigee 模擬工具

按照下列各節所述管理 Apigee Emulator。

選擇模擬器版本

根據預設,「emulator」資料夾會顯示穩定的版本。不過,您可以根據需求選擇其他版本。

  1. 使用下列任一方法查看 Apigee Emulator 版本清單,並記下「Tag」值:

  2. 如要在 Cloud Code 擴充功能中新增 Apigee Emulator 版本,請依序點選 「管理」 >「設定」,然後搜尋 apigee emulators

  3. 按一下「新增項目」模擬器設定

  4. 輸入您在步驟 1 中取得的「標記」值。例如:1.10.0google/apigee-emulator:1.10.0

  5. 按一下 [確定]

  6. 新加入的模擬器會顯示在「emulator」資料夾中。

安裝 Apigee 模擬器

如要安裝 Apigee Emulator,請按照下列步驟操作:

  1. 展開工作區中的「emulators」資料夾。

  2. 將滑鼠游標移至要安裝的 Apigee Emulator 版本。

  3. 按一下「安裝 Apigee Emulator 容器圖示」。

    安裝 Apigee Emulator 容器

  4. 按照「為 Apigee 新增容器」一文中的操作說明新增容器

    模擬器

已安裝所選 Apigee Emulator 版本的最新映像檔。安裝完成後,系統會顯示 Emulator installed successfully 訊息,並將 Apigee Emulator 容器狀態變更為「Ready」

安裝 Apigee 模擬器

為 Apigee 模擬工具新增容器

如何使用 UI 為 Apigee Emulator 新增容器:

  1. 展開「emulators」資料夾。

    展開 Apigee Emulator

  2. 將滑鼠游標移至要新增容器的 Apigee Emulator 上。

  3. 按一下 [+]。

  4. 為 Apigee Emulator 容器輸入專屬名稱,然後按下 Enter 鍵。輸入英數字元、破折號 (-) 或底線 (_)。

  5. 輸入要用於 Apigee Emulator 容器的控制項通訊埠的數值,然後按下 Enter 鍵。控制埠在所有容器中不得重複。預設為 8080

  6. 輸入要用於 Apigee Emulator 容器的流量通訊埠的數值,然後按下 Enter 鍵。在容器之間,流量通訊埠不得重複。預設為 8998

容器已新增。

查看 Apigee 模擬工具的狀態資訊

查看 Apigee Emulator 的狀態資訊,如以下各節所述。

運用使用者介面

如要查看 Apigee Emulator 的狀態資訊 (包括 Docker 和執行階段資訊),請展開「emulators」部分中的容器。您看到的資訊會與使用的 Apigee Emulator 版本相符。

Apigee Emulator 狀態資訊

使用 Docker CLI

如要查看 Apigee Emulator 及其已設定的連接埠的容器狀態資訊,請在「Terminal」分頁中執行 docker ps。以下提供回應範例。您看到的實際回應取決於使用的 Apigee Emulator 版本:

CONTAINER ID   IMAGE                                COMMAND       CREATED        STATUS        PORTS                                      NAMES
33756b8c5c5b   ...apigee-emulator:1.11.0   "/usr/bin…"   10 hours ago   Up 10 hours   7000-7001/tcp, 0.0.0.0:8080->8080/tcp...   apigee-emulator

另請參閱「自訂 Apigee 執行階段 Docker 容器」。

啟動 Apigee 模擬器

按照下列各節的說明啟動 Apigee Emulator。

運用使用者介面

如要啟動 Apigee Emulator,請將游標移至要啟動的容器,然後按一下 啟動 Apigee Emulator 容器

使用 Docker CLI

如要啟動 Apigee Emulator,請執行 docker start CONTAINER_NAME

在「Terminal」分頁中。

狀態已設為 Ready

Apigee Emulator 狀態資訊

另請參閱「自訂 Apigee 執行階段 Docker 容器」。

重設 Apigee 模擬器

重設 Apigee Emulator,即可移除所有部署和匯出的測試資源,如以下各節所述。

運用使用者介面

如要重設 Apigee Emulator,請將游標移至「emulators」部分中的 Apigee Emulator 容器,然後按一下 重設 Apigee Emulator 圖示

Apigee Emulator 已重設,狀態設為 Ready

Apigee Emulator 狀態資訊

「Output」分頁會顯示以下資訊:

Resetting the Apigee Emulator
Reset completed

另請參閱「自訂 Apigee 執行階段 Docker 容器」。

重新啟動 Apigee Emulator

如要重新啟動 Apigee Emulator,請在「Terminal」分頁中執行 docker restart CONTAINER_NAME。例如:docker restart MyContainer

更新 Apigee 模擬器

如果 Apigee Emulator 與最新版本不同步,您可以使用 UI 或 Docker CLI 更新已安裝的版本,如以下各節所述。

運用使用者介面

如要更新 Apigee 模擬器,請將游標移至「emulators」部分中的 Apigee 模擬器,然後按一下 更新 Apigee Emulator 圖示

使用 Docker CLI

如要更新 Apigee Emulator,請在 Terminal 分頁中執行下列 Docker 指令,並使用最新的適當版本

  • 執行 docker ps 即可取得映像檔名稱。範例:gcr.io/apigee-release/hybrid/apigee-emulator:EMULATOR_VERSION

  • 執行 docker pull IMAGE_NAME 來更新 Apigee Emulator 安裝映像檔。範例:docker pull gcr.io/apigee-release/hybrid/apigee-emulator:EMULATOR_VERSION

Apigee 模擬工具已更新,並顯示下列訊息:Emulator version is up to date

另請參閱「自訂 Apigee 執行階段 Docker 容器」。

停止 Apigee 模擬器

請使用 UI 或 Docker CLI 停止 Apigee Emulator,如以下各節所述。

運用使用者介面

如要停止 Apigee Emulator,請將游標懸停在「emulators」部分的 Apigee Emulator 容器上,然後按一下 停止 Apigee 模擬器圖示

使用 Docker CLI

如要停止 Apigee Emulator,請在「Terminal」分頁中執行 docker stop CONTAINER_NAME

Apigee Emulator 已停止,狀態已變更為 Not running

Apigee 模擬器未執行

另請參閱「自訂 Apigee 執行階段 Docker 容器」。

刪除 Apigee 模擬工具的容器

使用 UI 或 Docker CL 刪除 Apigee Emulator 的容器,如以下各節所述。

運用使用者介面

如要刪除 Apigee Emulator,請將滑鼠游標移至「emulators」部分的 Apigee Emulator 容器,然後按一下 用來刪除容器的垃圾桶圖示

使用 Docker CLI

如要刪除 Apigee Emulator 的容器,請在「Terminal」分頁中執行下列 Docker 指令:

  • 執行 docker stop CONTAINER_NAME 來停止 Apigee Emulator 安裝映像檔 (如果尚未停止)。例如:docker stop MyContainer

  • 執行 docker rm CONTAINER_NAME 可停止 Apigee Emulator 安裝映像檔。例如:docker rm MyContainer

刪除容器。

另請參閱「自訂 Apigee 執行階段 Docker 容器」。

自訂 Apigee 執行階段 Docker 容器

您可以使用下列選項,自訂用於控制 Apigee Emulator 執行個體的 Docker 指令列。

選項 說明
additionalArguments 新增一或多個引數。引數會以提供的形式加入 docker run 指令。預設值為 "" (無)。
detached 控管是否要在執行容器時使用 --detached 選項。預設值為 true
dns 如「DNS 服務」一文所述,可用來控制 DNS 服務 -dns 旗標。預設值為 8.8.8.8
environmentVariables 選項一節所述,請將環境變數新增至 docker run 指令。如果提供值,系統會使用 -e name=value 將這些值新增至 docker run 指令。預設清單包含 "XTERM": "xterm-256color"
labels 新增一或多個要附加至容器的標籤。標籤會使用 -l label:value 新增至 docker run 指令。預設值為 none
privileged 控管是否要在執行容器時使用 --privileged 選項。預設值為 true
volumes 新增一或多個要掛載至容器的磁碟區。使用 -v label:value 將音量新增至 docker run 指令。預設值為 none

如要自訂 Apigee 執行階段 Docker 容器,請按照下列步驟操作:

  1. 這項功能可透過 Insiders 版本 (1.21.0 以上版本) 使用。按照「安裝內部測試版本」一節的說明,安裝內部測試版本。

  2. 依序按一下 「管理」 >「設定」,然後搜尋 apigee docker

  3. 在「Cloudcode」>「Apigee:Docker 選項」下方,按一下「在 settings.json 中編輯」。可自訂的選項會顯示在 settings.json 檔案中,如下所示:

    "cloudcode.apigee.dockerOptions": {
      "environmentVariables": {
          "XTERM": "xterm-256-color"
      },
      "dns": "8.8.8.8",
      "detached": true
      "privileged": true,
      "labels": {},
      "volumes": {},
      "additionalArguments":""
    }
  4. 編輯選項並儲存檔案。

自訂 Apigee Emulator 以支援以服務帳戶為基礎的驗證

測試依賴 Google Cloud 服務帳戶驗證機制的 Proxy 時,Apigee Emulator 需要存取 Google 服務帳戶金鑰。請按照步驟設定 Apigee Emulator,以支援以服務帳戶為基礎的驗證機制。

建立及下載服務帳戶金鑰

建立具有服務帳戶符記建立者角色的 Google Cloud 服務帳戶,這是 Apigee Emulator 支援服務帳戶的必要條件。按照「建立服務帳戶金鑰」一節的說明,為服務帳戶建立金鑰。

將金鑰下載至本機檔案系統,以便提供給 Apigee 模擬器。

設定 Apigee 模擬器

如何設定 Apigee Emulator 設定:

  1. 開啟 Docker 選項,如「自訂 Apigee 執行階段 Docker」一文所述

    container

  2. 在 Docker 選項的 volumes 部分中,新增一個磁碟區,讓下載的服務帳戶金鑰路徑可在容器中使用。假設金鑰是在 /opt/apigee/keys/apigee-sa-key.json 路徑下載,以下設定會在容器內的 /emulator/keys 路徑中掛接 /opt/apigee/keys 的內容:

    "volumes": {
      "/opt/apigee/keys":"/emulator/keys"
    }
  3. 在 Docker 選項的 environmentVariables 部分中,新增指向已掛載路徑中檔案的 GOOGLE_APPLICATION_CREDENTIALS 變數:

    "environmentVariables": {
      "GOOGLE_APPLICATION_CREDENTIALS":"/emulator/keys/apigee-sa-key.json"
    }

  4. 儲存設定,並建立可用於測試的新容器執行個體。

以下範例說明如何將 Google 服務帳戶金鑰與 Apigee Emulator 建立關聯。

"cloudcode.apigee.dockerOptions": {
      "environmentVariables": {
          "XTERM": "xterm-256-color",
          "GOOGLE_APPLICATION_CREDENTIALS":"/emulator/keys/apigee-sa-key.json"
      },
      "dns": "8.8.8.8",
      "detached": true
      "privileged": true,
      "labels": {},
      "volumes": {
         "/opt/apigee/keys":"/emulator/keys"
      },
      "additionalArguments":""
    }

設定 Apigee Emulator 以支援 HTTP 轉送 Proxy

許多時候,您只能透過 HTTP 轉送 Proxy 存取與 Proxy 相關聯的後端目標。您可以設定 Apigee 模擬器,在使用名為 FORWARD_PROXY 的環境變數連線至目標時使用轉送 Proxy。

如何設定 Apigee Emulator 設定:

  1. 開啟 Docker 選項,如「自訂 Apigee 執行階段 Docker 容器」所述。

  2. 在 Docker 選項的 environmentVariables 部分中,新增 FORWARD_PROXY 變數,將前置 Proxy 位址設為 HTTP 網址

    "environmentVariables": {
      "FORWARD_PROXY":"http://proxy_host:proxy_port"
    }

  3. 儲存設定,並建立新的容器執行個體進行測試。