什麼是 Apigee Emulator

本頁內容適用於 ApigeeApigee Hybrid

查看 Apigee Edge 說明文件。

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

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

準備好部署及測試第一個 API Proxy 時,您需要使用模擬器部分,查看及管理模擬器版本,以及所設定模擬器的生命週期。

這個部分可讓您:

模擬器詳細資料專區

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

  • 新增、刪除、啟動、停止、重設、更新及重新整理 Apigee Emulator 容器的檢視畫面,詳情請參閱「管理 Apigee Emulator」。

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

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

管理 Apigee 模擬工具

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

選擇模擬器版本

根據預設,模擬器資料夾會顯示穩定版本。不過,您可以根據需求選擇其他版本。

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

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

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

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

  5. 按一下 [確定]

  6. 新增的模擬器會顯示在 emulator 資料夾中。

安裝 Apigee 模擬器

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

  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 模擬工具

  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 模擬工具狀態資訊

使用 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 模擬器容器

使用 Docker CLI

如要啟動 Apigee 模擬器,請執行 docker start CONTAINER_NAME

在「Terminal」分頁中。

狀態已設為「Ready」:

Apigee 模擬工具狀態資訊

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

重設 Apigee 模擬器

如要移除所有部署作業和匯出的測試資源,請按照下列各節所述重設 Apigee Emulator。

運用使用者介面

如要重設 Apigee 模擬器,請將游標放在「emulators」部分中的 Apigee 模擬器容器上,然後按一下 重設 Apigee 模擬工具圖示

Apigee Emulator 會重設,狀態也會設為 Ready

Apigee 模擬工具狀態資訊

「輸出」分頁會顯示下列資訊:

Resetting the Apigee Emulator
Reset completed

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

重新啟動 Apigee 模擬器

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

更新 Apigee 模擬器

如果 Apigee Emulator 與最新版本不同步,您可以透過 UI 或 Docker CLI 更新已安裝的版本,詳情請參閱下列各節。

運用使用者介面

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

使用 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 以上版本) 的一部分。按照「安裝 Insiders 版本」一文的說明,安裝 Insiders 版本。

  2. 依序點選「管理」 >「設定」,然後搜尋 apigee docker

  3. 在「Cloudcode」>「Apigee: Docker Options」下方,按一下「Edit in 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. 如「自訂 Apigee 執行階段 Docker」一文所述,開啟 Docker 選項

    container

  2. 在 Docker 選項的「volumes」部分,新增磁碟區,讓下載的服務帳戶金鑰路徑可在容器中使用。假設金鑰是在路徑 /opt/apigee/keys/apigee-sa-key.json 中下載,下列設定會將 /opt/apigee/keys 的內容掛接至容器內的 /emulator/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

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

如要設定 Apigee Emulator,請按照下列步驟操作:

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

  2. 在 Docker 選項的 environmentVariables 部分,新增指向轉送 Proxy 位址的 FORWARD_PROXY 變數,做為 HTTP 網址

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

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