本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
Apigee 模拟器是公开提供给开发者的自定义 Docker 映像,用于在本地开发环境中部署和测试 API 代理。Docker 映像定期在 gcr 中发布。
准备好部署和测试您的第一个 API 代理时,您需要使用模拟器部分来查看和管理模拟器版本以及设置的模拟器的生命周期。
在本部分中,您将:
查看已安装的不同模拟器版本、为每个模拟器版本创建的容器(包括其 Docker 和运行时信息),以及控制端口和流量端口
添加、删除、启动、停止、重置、更新和刷新 Apigee 模拟器容器视图,如管理 Apigee 模拟器中所述
查看当前部署的应用(请参阅部署环境)
查看活动的测试资源(请参阅将测试资源导出到 Apigee 模拟器)
管理 Apigee 模拟器
按照以下部分中的说明管理 Apigee 模拟器。另请参阅探索 Apigee 模拟器。
选择模拟器版本
默认情况下,模拟器视图会显示一个稳定的版本。但如果您需要选择其他版本,方法也很简单。
使用以下方法之一查看 Apigee 模拟器版本列表并记下标记值:
- 使用 Google Container Registry,位置:https://gcr.io/apigee-release/hybrid/apigee-emulator
- 使用 Docker Hub,位置:https://registry.hub.docker.com/r/google/apigee-emulator/tags
如需将 Apigee 模拟器版本添加到 Cloud Code 扩展程序,请点击
管理 > 设置,然后搜索apigee emulators
。点击添加项。
输入第 1 步中获得的标记值。例如:
1.10.0
或google/apigee-emulator:1.10.0
点击确定。
新添加的模拟器将显示在模拟器视图中。
安装 Apigee 模拟器
如需安装 Apigee 模拟器,请执行以下操作:
展开本地开发下的模拟器项,查看其中列出的模拟器。
将光标放在要安装的 Apigee 模拟器上。
点击 。
系统会提示您配置 Apigee 模拟器容器。
输入 Apigee 模拟器容器的唯一名称,然后按 Enter 键。输入字母数字字符、短划线 (-) 或下划线 (_)。
输入唯一数值以用作 Apigee 模拟器容器的控制端口,然后按 Enter 键。 控制端口默认为
8080
。输入唯一数值以用作 Apigee 模拟器容器的流量端口,然后按 Enter 键。 流量端口默认为
8998
。
已安装所选 Apigee 模拟器版本的最新映像。安装完成后,以下消息将显示 Emulator installed successfully
,Apigee 模拟器容器状态将更改为 准备就绪。
为 Apigee 模拟器添加容器
如需使用界面为 Apigee 模拟器添加容器,请执行以下操作:
展开本地开发下的模拟器部分。
将光标放在要添加容器的 Apigee 模拟器上。
点击 +,系统会提示您配置容器。
输入数值以用作 Apigee 模拟器容器的控制端口,然后按 Enter 键。 控制端口在容器之间必须是唯一的。默认值为
8080
。输入数值以用作 Apigee 模拟器容器的流量端口,然后按 Enter 键。 流量端口在容器之间必须是唯一的。默认值为
8998
。输入 Apigee 模拟器容器的唯一名称,然后按 Enter 键。输入字母数字字符、短划线 (-) 或下划线 (_)。
已添加容器。
查看 Apigee 模拟器的状态信息
查看 Apigee 模拟器的状态信息,如以下部分所述。
使用界面
如需查看 Apigee 模拟器的状态信息(包括它的 Docker 和运行时信息),请展开 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 模拟器
按照以下部分中的说明启动 Apigee 模拟器。
使用界面
如需启动 Apigee 模拟器,请将光标悬停在要启动的 Apigee 模拟器容器上,然后点击 。
使用 Docker CLI
如需启动 Apigee 模拟器,请在 Terminal 标签页中运行 docker start apigee-emulator
。
状态设置为 Ready
:
重置 Apigee 模拟器
重置 Apigee 模拟器,以移除所有部署和导出的测试资源,如以下部分所述。
使用界面
如需重置 Apigee 模拟器,请将光标悬停在 Apigee 模拟器部分中的 Apigee 模拟器容器上,然后点击 。
Apigee 模拟器会重置且状态设置为 Ready
:
Output 标签页中显示以下信息:
Resetting the Apigee Emulator Reset completed
重启 Apigee 模拟器
如需重启 Apigee 模拟器,请在 Terminal 标签页中运行 docker restart container-name
。例如:docker restart MyContainer
以下提供了一个响应示例:MyContainer
更新 Apigee 模拟器
如果 Apigee 模拟器与最新版本不同步,您可以使用界面或 Docker CLI 更新已安装的版本,如以下部分所述。
使用界面
如需更新 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 CLI 停止 Apigee 模拟器,如以下各部分所述。
使用界面
如需停止 Apigee 模拟器,请将光标放在 Apigee Emulators 部分中的 Apigee 模拟器容器上,然后点击 。
使用 Docker CLI
如需停止 Apigee 模拟器,请在 Terminal 标签页中运行 docker stop apigee-emulator
。
Apigee 模拟器已停止,且状态更改为 Not running
:
删除 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 命令行。
选项 | 说明 |
---|---|
additionalArguments |
添加一个或多个参数。这些参数会按原样添加到 docker run 命令。默认为 "" (无)。 |
detached |
控制是否在运行容器时使用 --detached 选项。默认值为 true 。 |
dns |
控制 DNS 服务的 -dns 标志,详情请参阅 DNS 服务部分。默认值为 8.8.8.8 。 |
environmentVariables |
将环境变量添加到 docker run 命令,详情请参阅选项部分。使用 -e 将相应值(如提供)添加到 docker run 命令。默认列表包含 "XTERM": "xterm-256color" 。 |
labels |
添加一个或多个要附加到容器的标签。使用 -l 将相应标签添加到 docker run 命令。默认值为 none 。 |
privileged |
控制是否在运行容器时使用 --privileged 选项。默认值为 true 。 |
volumes |
添加一个或多个要装载到容器上的卷。使用 -v 将相应卷添加到 docker run 命令。默认值为 none 。 |
如需自定义 Apigee 运行时 Docker 容器,请执行以下操作:
此功能作为内部人员版本的一部分提供(v1.21.0 及更高版本)。按照安装内部人员版本中的说明安装内部人员版本。
点击
管理 > 设置,然后搜索apigee docker
。在 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":"" }
根据需要修改选项,然后保存文件。
自定义 Apigee 模拟器以支持基于服务账号的身份验证
在测试依赖于基于 Google Cloud 服务账号的身份验证的代理时,Apigee 模拟器需要访问 Google 服务账号密钥。按照以下步骤配置 Apigee 模拟器以支持基于服务账号的身份验证。
创建和下载服务账号密钥
创建具有 Service Account Token Creator 角色的 Google Cloud 服务账号,Apigee 模拟器需要该角色才能支持服务账号。按照创建服务账号密钥中的说明为服务账号创建密钥。
将密钥下载到本地文件系统,以便将其提供给 Apigee 模拟器。
配置 Apigee 模拟器
要配置 Apigee 模拟器设置,请执行以下操作:
按照上文自定义 Apigee 运行时 Docker 容器中的说明打开 Docker 选项。
在 Docker 选项的
volumes
部分中,添加新卷,使下载的服务账号密钥路径可在容器中使用。假设密钥已下载到路径/opt/apigee/keys/apigee-sa-key.json
中,则以下设置会将/opt/apigee/keys
的内容装载到容器内的路径/emulator/keys
中:"volumes": { "/opt/apigee/keys":"/emulator/keys" }
在 Docker 选项的
environmentVariables
部分中,添加GOOGLE_APPLICATION_CREDENTIALS
变量,该变量指向已装载路径中的文件:"environmentVariables": { "GOOGLE_APPLICATION_CREDENTIALS":"/emulator/keys/apigee-sa-key.json" }
保存设置并创建一个可用于测试的新容器实例。
以下示例展示了如何将 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 模拟器设置,请执行以下操作:
按照自定义 Apigee 运行时 Docker 容器中的说明打开 Docker 选项。
在 Docker 选项的
environmentVariables
部分中,添加FORWARD_PROXY
变量,该变量作为指向转发代理地址的 HTTP 网址"environmentVariables": { "FORWARD_PROXY":"http://proxy_host:proxy_port" }
保存设置并创建新的容器实例以用于测试。