本页面适用于 Apigee 和 Apigee Hybrid。
查看 Apigee Edge 文档。
环境是要部署的 API 代理和共享流的运行时执行上下文。您必须先将 API 代理和共享流部署到一个或多个环境,然后才能对其进行访问以进行测试。如需详细了解环境,请参阅环境和环境组简介。
按照以下部分中的说明配置和部署环境。另请参阅管理 Apigee 工作区中的文件夹和文件。
配置环境
在部署环境之前,请对其进行配置,以确定要部署的 API 代理和共享流,并根据需要配置共享流钩子或目标服务器。
要配置环境,请创建环境并修改下表中定义的配置。
配置 | 说明 |
---|---|
调试遮盖 (debugmasks.json ) |
定义遮盖配置,以在跟踪记录和调试会话中遮盖特定数据。 |
部署 (deployments.json ) |
在部署中定义 API 代理和共享流。 |
流钩子 (flowhooks.json ) |
将共享流连接到流钩子,使得对于部署到环境中的所有 API 代理,共享流都在同一位置执行。 |
目标服务器 (targetservers.json ) |
将具体端点与目标端点分离,以支持跨多个后端服务器实例进行负载均衡和故障切换。 |
密钥库 (keystores.json ) |
向您的目标端点和目标服务器添加 TLS 支持。 |
此外,如果您使用任何需要资源的政策,还可以根据需要在环境级层管理资源。
创建环境
如需在 Cloud Code 中的 Apigee 中创建环境,请执行以下操作:
执行以下操作之一:
将光标悬停在 Apigee 工作区中的 environments 文件夹上,然后点击 。
选择 View > Command Palette 以打开 Command Palette,然后选择 Cloud Code: Create Apigee environment。
系统会打开创建环境向导。
输入环境名称,然后按 Enter 键。
该环境会被添加到 Apigee 部分的 environments 文件夹中:
按照以下部分中的说明配置环境。
配置调试遮盖 (debugmask.json)
Apigee 让您可以定义遮盖配置,以在跟踪和调试会话中遮盖特定数据。遮盖数据后,这些数据会在跟踪记录输出中被替换为星号。例如:
<description>**********</description>
如需了解详情,请参阅遮盖敏感数据。
要配置调试掩码,请通过直接修改文件更新 debugmask.json
文件。
下面提供了 JSON 格式的遮盖配置的基本结构示例。 如需详细了解示例中的遮盖配置字段,请参阅 DebugMask。
{ "namespaces": { "myco": "https://example.com" }, "requestXPaths": [ "/myco:Greeting/myco:User" ], "responseXPaths": [ "/myco:Greeting/myco:User" ], "faultXPaths": [ "/myco:Greeting/myco:User" ], "requestJSONPaths": [ "$.store.book[].author" ], "responseJSONPaths": [ "$.store.book[].author" ], "faultJSONPaths": [ "$.store.book[*].author" ], "variables": [ "request.header.user-agent", "request.formparam.password" ] }
配置部署 (deployments.json)
配置要在部署中包含的 API 代理和共享流。
如需配置部署,请使用配置向导更新 deployments.json
文件,或直接修改文件。
要使用配置向导配置部署,请执行以下操作:
- 将光标放在环境的 deployments.json 文件上,然后点击 。
- 逐步完成配置向导,以选择部署并自动填充
deployments.json
文件中的字段。deployments.json
文件会在编辑器中打开。 - 根据需要修改配置。
- 选择 File > Save 或 ⌘S 保存修改。
以下示例将部署配置为包含 helloworld
API 代理以及 mysharedflow
和 hw-sharedflow
共享流:
{ "proxies" : [ "helloworld" ], "sharedflows" : [ "mysharedflow", "hw-sharedflow" ] }
使用代理和共享流部署来配置服务账号
依赖 Google 服务作为后端的 API 代理可能需要 Google Cloud 服务账号与部署相关联。请参阅使用 Google 身份验证。
修改 deployments.json
文件时,您可以将 API 代理或共享流与 Google Cloud 服务账号相关联。例如:
{ "name": "proxy-name", "serviceAccount": "associated-service-account" }
以下示例展示了服务账号与 API 代理 helloworld
和共享流 mysharedflow
相关联,而代理 healthcheck
和共享流 hw-sharedflow
与服务账号不相关联的部署配置:
{ "proxies": [ { "name": "helloworld", "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com" }, "healthcheck" ], "sharedflows": [ { "name": "mysharedflow", "serviceAccount": "myserviceaccount@myorg.iam.gserviceaccount.com" }, "hw-sharedflow" ] }
详细了解如何配置 Apigee 模拟器以测试 API 代理中的服务账号身份验证功能。
使用流钩子 (flowhooks.json) 连接共享流
您可以通过流钩子连接共享流,使得对于部署到特定环境的所有 API 代理,它都在同一位置执行。这为您提供了一个单独实现和部署的逻辑序列,该序列不属于代理的实现代码。具体来说,您可以在 API 代理流中的以下位置连接共享流:
- API 代理端点执行之前 (
PreProxyFlowHook
) - API 代理端点执行之后并且在响应发送到客户端之前 (
PostProxyFlowHook
) - 目标端点执行之前 (
PreTargetFlowHook
) - 目标响应执行之后 (
PostTargetFlowHook
)
如需详细了解流钩子,请参阅使用流钩子连接共享流。
部署到相应环境的每个代理的流钩子处执行。要使用流钩子连接共享流,请使用配置向导更新 flowhooks.json
文件,或直接修改文件。
如需使用配置向导配置流程钩子,请执行以下操作:
- 将光标放在环境的 flowhooks.json 文件上,然后点击 。
- 选择要连接到 API 代理流中特定位置的共享流,并自动填充
flowhooks.json
文件中的字段。flowhooks.json
文件会在编辑器中打开。 - 根据需要修改配置。
- 选择 File > Save 或 ⌘S 保存修改。
以下示例将 mysharedflow
连接到 PreProxyFlowHook
,以便该共享流在 API 代理端点执行之前执行:
{ "PreProxyFlowHook": { "continueOnError": true, "sharedFlow": "mysharedflow", "description": "Shared enforced before a proxy endpoint executes." } }
配置目标服务器 (targetservers.json)
目标服务器 (TargetServer) 将具体的端点网址与目标端点 (TargetEndpoint) 配置分离开来。您可以配置一个或多个已命名的 TargetServer,而不是在配置中定义具体的网址。然后,在 TargetEndpoint HTTPConnection 中按名称引用每个 TargetServer。
如需详细了解目标服务器,请参阅以下主题:
要配置目标服务器,请使用配置向导更新 targetservers.json
文件,或直接修改文件。有关 targetservers.json
文件中的字段的说明,请参阅资源:TargetServer。
要使用配置向导配置目标服务器,请执行以下操作:
- 将光标放在环境的 targetservers.json 文件上,然后点击 。
- 逐步完成配置向导,以配置目标服务器并自动填充
targetservers.json
文件中的字段。targetservers.json
文件会在编辑器中打开。 - 根据需要修改配置。
- 选择 File > Save 或 ⌘S 保存修改。
以下示例在环境中添加新的目标服务器:
[ { "enabled": true, "name": "mytargetserver", "description": "My first target server", "host": "localhost", "port": 80 } ]
以下示例使用密钥库配置使用双向 TLS 的目标服务器:
[ { "name": "mtlsserver", "host": "mytargetserver.mydomain", "port": 443, "enabled": true, "protocol": "HTTP", "tlsInfo": { "enabled": true, "clientAuthEnabled": true, "keyStore": "mykeystore", "keyAlias": "mykeyandcert", "trustStore": "mytruststore" } } ]
配置密钥库 (keystores.json)
密钥库定义了用于目标端点和目标服务器中的 TLS 加密的安全证书库。
如需详细了解 TLS 配置,请参阅用于配置 TLS 的选项。
如需配置密钥库,请执行以下操作:
- 在编辑器中打开环境的
keystores.json
文件。该文件包含两个主要元素stores
- 添加的密钥库名称和别名的映射。references
- 所有密钥库引用名称和关联的密钥库名称的映射。
- 根据需要修改配置。
- 选择 File > Save 或 ⌘S 保存修改。
以下示例展示了包含两个别名 mycert-alias
和 mykeycert-alias
的密钥库 mykeystore
:
{ "stores": { "mykeystore": { "my-cert-alias": { "cert": "/Users/jdoe/testkeys/cert1.pem" }, "my-keycert-alias": { "key": "/Users/jdoe/testkeys/key1.pem", "cert": "/Users/jdoe/testkeys/cert1.pem" } } } }
部署环境
部署为环境配置的 API 代理和共享流,以便对其进行访问以进行测试。
要部署环境,请执行以下操作:
- 在 Apigee 部分中,将光标放在要部署的环境的文件夹上。
- 点击 。
- 如果 Apigee 模拟器有多个容器正在运行,请选择要在其中部署环境的容器。
- 选择要使用部署导出的测试软件包,或选择不使用测试软件包进行部署。
您可以稍后导出测试资源,如将测试资源导出到 Apigee 模拟器中所述。
环境部署完成,输出标签页中显示成功消息。
已部署的应用显示在 Apigee 模拟器中: