什么是 Apigee 模拟器

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

Apigee 模拟器是公开提供给开发者的自定义 Docker 映像,用于在本地开发环境中部署和测试 API 代理。Docker 映像定期在 gcr 中发布。

准备好部署和测试您的第一个 API 代理时,您需要使用模拟器部分来查看和管理模拟器版本以及设置的模拟器的生命周期。

在本部分中,您将:

模拟器部分的详细信息

  • 查看已安装的不同模拟器版本、为每个模拟器版本创建的容器(包括其 Docker 和运行时信息),以及控制端口和流量端口

  • 添加、删除、启动、停止、重置、更新和刷新 Apigee 模拟器容器视图,如管理 Apigee 模拟器中所述

  • 查看当前部署的应用(请参阅部署环境

  • 查看活动的测试资源(请参阅将测试资源导出到 Apigee 模拟器

管理 Apigee 模拟器

按照以下部分中的说明管理 Apigee 模拟器。另请参阅探索 Apigee 模拟器

选择模拟器版本

默认情况下,模拟器视图会显示一个稳定的版本。但如果您需要选择其他版本,方法也很简单。

  1. 使用以下方法之一查看 Apigee 模拟器版本列表并记下标记值:

  2. 如需将 Apigee 模拟器版本添加到 Cloud Code 扩展程序,请点击 管理 > 设置,然后搜索 apigee emulators

  3. 点击添加项模拟器设置

  4. 输入第 1 步中获得的标记值。例如:1.10.0google/apigee-emulator:1.10.0

  5. 点击确定

  6. 新添加的模拟器将显示在模拟器视图中。

安装 Apigee 模拟器

如需安装 Apigee 模拟器,请执行以下操作:

  1. 展开本地开发下的模拟器项,查看其中列出的模拟器。 展开 Apigee 模拟器

  2. 将光标放在要安装的 Apigee 模拟器上。

  3. 点击 安装 Apigee 模拟器

    安装 Apigee 模拟器

    系统会提示您配置 Apigee 模拟器容器。

  4. 输入 Apigee 模拟器容器的唯一名称,然后按 Enter 键。输入字母数字字符、短划线 (-) 或下划线 (_)。

  5. 输入唯一数值以用作 Apigee 模拟器容器的控制端口,然后按 Enter 键。 控制端口默认为 8080

  6. 输入唯一数值以用作 Apigee 模拟器容器的流量端口,然后按 Enter 键。 流量端口默认为 8998

已安装所选 Apigee 模拟器版本的最新映像。安装完成后,以下消息将显示 Emulator installed successfully,Apigee 模拟器容器状态将更改为 准备就绪

安装 Apigee 模拟器

为 Apigee 模拟器添加容器

如需使用界面为 Apigee 模拟器添加容器,请执行以下操作:

  1. 展开本地开发下的模拟器部分。

    展开 Apigee 模拟器

  2. 将光标放在要添加容器的 Apigee 模拟器上。

  3. 点击 +,系统会提示您配置容器。

  4. 输入数值以用作 Apigee 模拟器容器的控制端口,然后按 Enter 键。 控制端口在容器之间必须是唯一的。默认值为 8080

  5. 输入数值以用作 Apigee 模拟器容器的流量端口,然后按 Enter 键。 流量端口在容器之间必须是唯一的。默认值为 8998

  6. 输入 Apigee 模拟器容器的唯一名称,然后按 Enter 键。输入字母数字字符、短划线 (-) 或下划线 (_)。

已添加容器。

查看 Apigee 模拟器的状态信息

查看 Apigee 模拟器的状态信息,如以下部分所述。

使用界面

如需查看 Apigee 模拟器的状态信息(包括它的 Docker 和运行时信息),请展开 Apigee 模拟器部分中的容器。 您看到的信息与正在使用的 Apigee 模拟器版本匹配。

Apigee 模拟器状态信息

使用 Docker CLI

如需查看 Apigee 模拟器的容器状态信息及其已配置的端口,请在 Terminal 标签页中运行 docker ps。以下提供了一个示例响应。您看到的实际响应取决于正在使用的 Apigee 模拟器版本:

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 模拟器。

使用界面

如需启动 Apigee 模拟器,请将光标悬停在要启动的 Apigee 模拟器容器上,然后点击 “启动 Apigee 模拟器”图标

使用 Docker CLI

如需启动 Apigee 模拟器,请在 Terminal 标签页中运行 docker start apigee-emulator

状态设置为 Ready

Apigee 模拟器状态信息

另请参阅自定义 Apigee 运行时 Docker 容器

重置 Apigee 模拟器

重置 Apigee 模拟器,以移除所有部署和导出的测试资源,如以下部分所述。

使用界面

如需重置 Apigee 模拟器,请将光标悬停在 Apigee 模拟器部分中的 Apigee 模拟器容器上,然后点击 “重置 Apigee 模拟器”图标

Apigee 模拟器会重置且状态设置为 Ready

Apigee 模拟器状态信息

Output 标签页中显示以下信息:

Resetting the Apigee Emulator
Reset completed

另请参阅自定义 Apigee 运行时 Docker 容器

重启 Apigee 模拟器

如需重启 Apigee 模拟器,请在 Terminal 标签页中运行 docker restart container-name。例如:docker restart MyContainer

以下提供了一个响应示例:MyContainer

更新 Apigee 模拟器

如果 Apigee 模拟器与最新版本不同步,您可以使用界面或 Docker CLI 更新已安装的版本,如以下部分所述。

使用界面

如需更新 Apigee 模拟器,请将光标悬停在 Apigee 模拟器部分中的 Apigee 模拟器上,然后点击 更新 Apigee 模拟器图标

使用 Docker CLI

如需更新 Apigee 模拟器,请在终端标签页中运行以下 Docker 命令,并使用最新的适当版本

  • 运行 docker ps 以获取映像名称。 示例:gcr.io/apigee-release/hybrid/apigee-emulator:Emulator version

  • 运行 docker pull imagename 以更新 Apigee 模拟器的安装映像。 示例:docker pull gcr.io/apigee-release/hybrid/apigee-emulator:Emulator version

Apigee 模拟器已更新,同时还会显示以下消息:Emulator version is up to date

另请参阅自定义 Apigee 运行时 Docker 容器

停止 Apigee 模拟器

使用界面或 Docker CLI 停止 Apigee 模拟器,如以下各部分所述。

使用界面

如需停止 Apigee 模拟器,请将光标放在 Apigee Emulators 部分中的 Apigee 模拟器容器上,然后点击 “停止 Apigee 模拟器”图标

使用 Docker CLI

如需停止 Apigee 模拟器,请在 Terminal 标签页中运行 docker stop apigee-emulator

Apigee 模拟器已停止,且状态更改为 Not running

未运行

另请参阅自定义 Apigee 运行时 Docker 容器

删除 Apigee 模拟器的容器

使用界面或 Docker CL 删除 Apigee 模拟器的容器,如以下部分所述。

使用界面

如需删除 Apigee 模拟器,请将光标悬停在 Apigee 模拟器部分中的 Apigee 模拟器容器上,然后点击

使用 Docker CLI

如需删除 Apigee 模拟器的容器,请在终端标签页中运行以下 Docker 命令:

  • 运行 docker stop container 以停止 Apigee 模拟器的安装映像(如果尚未停止)。例如 docker stop MyContainer

  • 运行 docker rm container 以停止 Apigee 模拟器的安装映像。例如 docker rm MyContainer

已删除容器。

另请参阅自定义 Apigee 运行时 Docker 容器

自定义 Apigee 运行时 Docker 容器

您可以使用以下选项自定义用于控制 Apigee 模拟器实例的 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. 此功能作为内部人员版本的一部分提供(v1.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 模拟器以支持基于服务账号的身份验证

在测试依赖于基于 Google Cloud 服务账号的身份验证的代理时,Apigee 模拟器需要访问 Google 服务账号密钥。按照以下步骤配置 Apigee 模拟器以支持基于服务账号的身份验证。

创建和下载服务账号密钥

创建具有 Service Account Token Creator 角色的 Google Cloud 服务账号,Apigee 模拟器需要该角色才能支持服务账号。按照创建服务账号密钥中的说明为服务账号创建密钥。

将密钥下载到本地文件系统,以便将其提供给 Apigee 模拟器。

配置 Apigee 模拟器

要配置 Apigee 模拟器设置,请执行以下操作:

  1. 按照上文自定义 Apigee 运行时 Docker 容器中的说明打开 Docker 选项。

  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 模拟器相关联。

"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 模拟器以支持 HTTP 转发代理

很多时候,与代理关联的后端目标只能使用 HTTP 转发代理来访问。您可以将 Apigee 模拟器配置为使用转发代理,同时使用名为 FORWARD_PROXY 的环境变量连接到目标。

要配置 Apigee 模拟器设置,请执行以下操作:

  1. 按照自定义 Apigee 运行时 Docker 容器中的说明打开 Docker 选项。

  2. 在 Docker 选项的 environmentVariables 部分中,添加 FORWARD_PROXY 变量,该变量作为指向转发代理地址的 HTTP 网址

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

  3. 保存设置并创建新的容器实例以用于测试。