托管的目标概览

您正在查看的是 Apigee Edge 文档。
转到 Apigee X 文档
信息

借助 Hosted Target,您可以在 Apigee 托管的原生运行时环境中运行 Node.js 应用。Hosted Target 的目标很简单,就是允许您在原生、安全、可扩缩的隔离环境中部署应用,在这里 Edge API 代理可以将它们作为目标服务调用。

如下图所示,Edge API 代理会调用部署到 Hosted Target 环境的 Node.js 应用。请注意,Hosted Target 环境的范围限定为 Apigee 组织:环境。

要使用 Edge API 代理与正确构建和部署的 Hosted Target 应用进行通信,需要在代理的目标端点中进行简单的配置。要开始使用,请转到托管目标教程

托管目标支持哪些应用运行时?

目前,您只能将 Node.js 应用部署到 Hosted 目标。

安装托管目标

托管目标适用于所有 Edge 公有云组织。您无需安装任何内容即可使用 Hosted Target。

验证托管目标是否已启用

如果您想验证您的组织是否已启用托管目标,请获取组织详情,并确保 features.isEdgeFunctionsEnabled 属性设置为 true。该属性是只读属性。

例如:

https://api.enterprise.apigee.com/v1/organizations/myorg

  {
     "createdAt":1507572884047,
     "createdBy":"jdoe@apigee.com",
     "displayName":"myorg",
     "environments":[
        "prod",
        "dev",
        "test",
        "portal"
     ],
     "lastModifiedAt":1507578673194,
     "lastModifiedBy":"jdoe@apigee.com",
     "name":"jdoe",
     "properties":{
        "property":[
           {
              "name":"features.isSmbOrganization",
              "value":"false"
           },
           {
              "name":"self.service.virtual.host.enabled",
              "value":"true"
           },
           {
              "name":"features.isCpsEnabled",
              "value":"true"
           },
           {
              "name":"features.isEdgeFunctionsEnabled",
              "value":"true"
           }
        ]
     },
     "type":"paid"
  }
  

关于托管目标的须知事项

借助 Hosted Target,Node.js 应用可以在不依赖于任何 Apigee 特有的运行时技术的原生环境中运行。您可以在部署应用之前在本地调试和测试应用,并确保已部署的版本与本地运行完全相同。在部署时,您可以选择任何应用运行时版本,以在 Hosted Target 中运行您的应用。例如,您可以专门选择在 v8.10.0 环境中运行 Node.js 应用。

限制

如需了解托管目标的用量限额,请参阅 Apigee 产品限制

要遵循的基本步骤

如果您熟悉 Edge 代理开发,只需学习几个简单的步骤即可成功使用托管的目标。从本质上讲,您可以为托管目标创建、部署和管理 Edge 代理,就像为其他任何 Apigee Edge 代理创建、部署和管理一样。

要使用托管目标,您需要执行以下任务。教程会详细介绍其中每项任务。

  • 在本地开发和测试您的 Node.js 应用。
  • 在应用项目的根目录中创建清单文件。该清单是一个 YAML 文件,用于指定构建和部署应用所需的信息。
  • 将您的应用作为托管资源类型添加到 Edge 代理。
  • 在代理的“目标端点”中,添加空的 <HostedTarget/> 标记。此标记指示 Edge 将 Node.js 应用部署到 Hosted Target 环境。例如:
  • <?xml version="1.0" encoding="UTF-8"?>
    <TargetEndpoint name="default">
       <PreFlow name="PreFlow">
          <Request />
          <Response />
       </PreFlow>
       <PostFlow name="PostFlow">
          <Request />
          <Response />
       </PostFlow>
       <Flows />
       <HostedTarget />
    </TargetEndpoint>

Hosted Target 应用的范围

托管目标应用的作用域限定为 Edge 组织环境。此范围设定与任何 Edge 代理的范围相同。

Hosted Target 应用是否可以访问代理数据?

Hosted Target 应用目前无权访问代理运行时环境。这意味着您无法直接从 Hosted Target 应用访问流变量、缓存和其他实体。

借助嵌入式 Node.js(Edge 中基于 Trireme 的传统 Node.js 支持),您可以使用 apigee-access 访问 Edge 中的流变量和其他实体。但是,Hosted 目标不支持 Node.js 部署的 apigee-access 模块。另请参阅是否可以解决缺少 Apigee 访问权限的问题?

将现有应用代码迁移到 Hosted 目标

目前没有从基于 Trireme 的传统嵌入式 Node.js 应用到 Hosted 目标的自动迁移路径。不过,您可以手动将现有应用代码转换为托管目标。如需查看示例,请参阅将现有 Node.js 代理迁移到 Hosted Target 代理