托管目标常见问题解答

您正在查看 Apigee Edge 文档。
请查看 Apigee X 文档

我可以创建或部署的托管目标数量有限制吗?

如需了解您的方案的托管目标使用权,请参阅 Apigee Edge Cloud 比较矩阵规范表

托管的目标代理是否支持 Management API?

未创建新的管理 API 或更改了现有 API 以支持托管目标;不过,只要托管代理代理构建正确,您就可以使用现有的管理 API 来部署和管理使用托管目标的代理。另请参阅 Node.js 应用的所需目录结构

我可以使用 IP 许可名单保护目标后端吗?

托管目标所基于的技术 Google App Engine (GAE) 不提供向应用提供静态 IP 地址的方式。GAE 使用 IP 池范围,因此可能会允许使用一系列 IP 地址。如需了解详情,请参阅此 GAE 常见问题解答条目:静态 IP 地址和 App Engine 应用

我可以将多个 <HostedTarget> 目标端点放在一个代理中吗?

不会。每个代理只部署一个托管目标应用。已部署的应用是代理的 resources/hosted 目录中的应用。

能否解决缺少 Apigee 访问权限的问题?

您无法在托管目标应用中使用 apigee-access 模块。 如果您将传统嵌入式 Node.js 与 apigee-access 搭配使用,并且希望迁移到托管目标,请考虑以下可能性:

  • 使用边缘政策 - 尽可能使用标准边缘政策来替换现有 apigee-access 代码的作用。
  • 使用标头 - 您可以在 HTTP 请求标头中为 Node.js 应用添加 KVM 值和流变量。此策略适用于 API 代理的请求流程中可用的 KVM 值或流变量。
  • 使用环境变量 - 您可以设置环境变量由 KVM 提供的环境变量。用户指南的清单文件部分对此进行了说明。

我可以将 Java 密钥库 (JKS) 文件用于 TLS 吗?

托管的目标不支持使用 JKS for TLS 替代 PEM 文件,请参阅此处查看之前的文档。托管目标使用原生 Node.js,因此以原生方式使用 OpenSSL。设置 TLS/SSL 连接时,请参阅 Node.js 文档提供的 TLS (SSL) 文档

管理临时文件的最佳方式是什么?

务必删除临时文件。临时目录中的本地磁盘存储是内存中的文件系统。您写入的所有文件都会占用函数可以使用的内存。您写入的文件通常可用于连续的调用,因此,如果未能删除这些文件,最终可能会导致内存不足错误,并且随后需要进行冷启动。

请勿试图在临时目录之外执行写入操作。此外,请使用与平台无关的方法(如 os.tmpdir()path.join())构建临时文件路径,使您的函数也可以在任何平台上的模拟器上运行。

如需了解详情,请参阅此 Google Cloud 文档

我可以部署多个代理修订版本吗?

通过 Apigee Edge,您可以将代理的多个修订版本部署到具有不同基本路径的环境;但是,托管目标不支持此行为。

请求标头大小是否有限制?

对于最新版本的 Node.js (11.3.0+) 以及 LTS 版本(包括 6.14.0+、8.14.0+ 和 11.3.0+),您在 Node.js 应用中可以使用的请求标头大小上限为 8 KB。如果您要传递超过 8 KB 的标头,请指定上面列表中没有的其他 Node.js 版本。您可以在应用的清单文件中执行此操作。例如:

  runtime: node
  runtimeVersion:6.4.1
  application:my-express-app
  env:
    - name: NODE_ENV
      value: production
    - name: LOG_LEVEL
      value: 3
  

我可以对托管目标使用 HTTP 响应流式传输吗?

托管响应目标不支持 HTTP 响应流式传输,因为构建托管目标的技术 Google App Engine (GAE) 不支持流式传输

请求超时是否有限制?

Google App Engine (GAE) 会强制执行 60 秒的请求超时请求。另请参阅 GAE 文档中的配额和限制