配置和部署环境

本页面适用于 ApigeeApigee Hybrid

查看 Apigee Edge 文档。

环境是要部署的 API 代理和共享流的运行时执行上下文。您必须先将 API 代理和共享流部署到一个或多个环境,然后才能对其进行访问以进行测试。如需详细了解环境,请参阅环境和环境组简介

按照以下部分中的说明配置和部署环境。另请参阅管理 Apigee 工作区中的文件夹和文件

配置环境

部署环境之前,您必须对其进行配置,以确定要部署的 API 代理和共享流,并根据需要配置共享流钩子或目标服务器。

要配置环境,请创建环境并修改下表中定义的配置。

配置 说明
调试遮盖 (debugmasks.json) 定义遮盖配置,以在跟踪和调试会话中遮盖特定数据。
部署 (deployments.json) 在部署中定义 API 代理和共享流。
流钩子 (flowhooks.json) 将共享流连接到流钩子,使得对于部署到环境中的所有 API 代理,共享流都在同一位置执行。
目标服务器 (targetservers.json) 将具体端点与目标端点分离,以支持跨多个后端服务器实例进行负载均衡和故障切换。
密钥库 (keystores.json) 向您的目标端点目标服务器添加 TLS 支持。

此外,如果您使用任何需要资源的政策,还可以根据需要在环境级层管理资源

创建环境

如需在 Cloud Code 中的 Apigee 中创建环境,请执行以下操作:

  1. 执行以下操作之一:

    • 将光标放在 Apigee 部分中的 environments 文件夹上,然后点击 “创建”图标

      将光标放在 environments 文件夹上时显示 +

    • 选择 View > Command Palette 以打开 Command Palette,然后选择 Cloud Code: Create Apigee environment

    此时会打开 Create environment 向导。

  2. 输入环境名称,然后按 Enter 键。

该环境会被添加到 Apigee 部分中的 environments 文件夹中,如下图所示。

包含 deployments.json、flowhooks.json 和 targetservers.json 文件的 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 文件(如下所述),或直接修改文件

要使用配置向导配置部署,请执行以下操作:

  1. 将光标放在环境的 deployments.json 文件上,然后点击 向导图标

    将光标放在 deployments.json 文件夹上时显示“设置”图标

  2. 逐步完成配置向导,以选择部署并自动填充 deployments.json 文件中的字段。
    deployments.json 文件会在编辑器中打开。

  3. 根据需要修改配置。

  4. 选择 File > Save 或 ⌘S 保存修改。

以下示例将部署配置为包含 helloworld API 代理以及 mysharedflowhw-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 文件(如下所述),或直接修改文件

要使用配置向导配置部署,请执行以下操作:

  1. 将光标放在环境的 flowhooks.json 文件上,然后点击 向导图标
  2. 逐步完成配置向导,以选择要连接到 API 代理流中特定位置的共享流,并自动填充 flowhooks.json 文件中的字段。
    flowhooks.json 文件会在编辑器中打开。
  3. 根据需要修改配置。
  4. 选择 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

要使用配置向导配置目标服务器,请执行以下操作:

  1. 将光标放在环境的 targetservers.json 文件上,然后点击 向导图标
  2. 逐步完成配置向导,以配置目标服务器并自动填充 targetservers.json 文件中的字段。targetservers.json 文件会在编辑器中打开。
  3. 根据需要修改配置。
  4. 选择 File > Save 或 ⌘S 保存修改。

以下示例在环境中添加新的目标服务器:

[
  {
    "enabled": true,
    "description": "My first target server",
    "name": "mytargetserver",
    "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 的选项

如需配置密钥库,请执行以下操作:

  1. 在编辑器中打开环境的 keystores.json 文件。该文件包含两个主要元素
    • stores - 密钥库名称和添加的别名的映射。
    • references - 所有密钥库引用名称和关联的密钥库名称的映射。
  2. 根据需要修改配置。
  3. 选择 File > Save 或 ⌘S 保存修改。

以下示例展示了包含两个别名 mycert-aliasmykeycert-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 代理和共享流,以便对其进行访问以进行测试。

要部署环境,请执行以下操作:

  1. 在 Apigee 部分中,将光标放在要部署的环境的文件夹上。
  2. 点击 “部署”图标

    将光标放在 dev 环境文件夹上时显示“部署”图标

  3. 如果 Apigee 模拟器有多个容器正在运行,请选择要在其中部署环境的容器。
  4. 选择要使用部署导出的测试软件包,或选择不使用测试软件包进行部署

    导出测试软件包的提示

    您可以稍后导出测试资源,如将测试资源导出到 Apigee 模拟器中所述。

环境部署完成,Output 标签页中显示以下信息:

Environment dev deployed successfully with revision 7

已部署的应用显示在 Apigee 模拟器中,如下所示。

Apigee 模拟器显示已部署的 helloworld 应用和活动的测试资源

后续步骤

现在可以测试您的 API 了。