一个 Apigee Api 代理,每个环境都有不同的目标端点

问题描述 投票:0回答:2

我是 Apigee 初学者。我们正在迁移到 Apigee。

我们的主机名中有我们的环境,例如:

something.int.other.thing.co.uk
something.test.other.thing.co.uk
something.stage.other.thing.co.uk
something.prod.other.thing.co.uk

我希望能够将它们映射到apigee api代理本身的4个环境,分别是int, test, stage, prod.

我目前为他们准备了一个休息资源,例如:

/resource

基本上我希望 apigee api 代理具有一个 rest 资源,以映射到 4 个不同的目标端点,具体取决于环境。

到目前为止,我已经尝试从 UI 进行操作,但未能成功。

我一直在浏览文档,到目前为止我已经找到了这些:

  • 据此应该可以: “API 代理可以包含零个或多个 TargetEndpoints。” (目标端点部分)

http://apigee.com/docs/api-services/content/api-proxy-configuration-reference

  • 根据这些可以对proxy endpoint做routerules,但是我一直没能实现到targetendpoint:

使用“无目标端点”在现有 API 代理上创建新端点

一个 API 代理调用两个不同的目标端点

我也尝试按照这个思路做一些事情,对于 TargetEndpoint,我在那里测试了环境名称,但它没有用:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<TargetEndpoint name="default">
    <Description/>
    <Flows/>
    <PreFlow name="PreFlow">
        <Request/>
        <Response/>
    </PreFlow>
    <HTTPTargetConnection>
        <URL>something.int.other.thing.co.uk</URL>
    </HTTPTargetConnection>
    <RouteRule name="int">
        <Condition>environment.name == "int"</Condition>
        <TargetEndpoint>something.int.other.thing.co.uk</TargetEndpoint>
    </RouteRule>
    <RouteRule name="test">
        <Condition>environment.name == "test"</Condition>
        <TargetEndpoint>something.test.other.thing.co.uk/</TargetEndpoint>
    </RouteRule>
    <RouteRule name="stage">
        <Condition>environment.name == "stage"</Condition>
        <TargetEndpoint>something.stage.other.thing.co.uk/</TargetEndpoint>
    </RouteRule>
    <RouteRule name="prod">
        <Condition>environment.name == "prod"</Condition>
        <TargetEndpoint>something.prod.other.thing.co.uk</TargetEndpoint>
    </RouteRule>
    <PostFlow name="PostFlow">
        <Request/>
        <Response/>
    </PostFlow>
</TargetEndpoint>

这可能吗?

api rest environment-variables backend apigee
2个回答
3
投票

Apigee 支持 Target Servers 的概念——它从代理中抽象出后端主机并提供负载平衡。相同的目标服务器可以配置为指向每个环境的不同主机(这个概念已经内置到 Apigee 中)。

看看,这应该有帮助。

斯里坎特


2
投票

LoadBalancer 和 TargetServer 设置进入 TargetEndpoint 定义,特别是在 HTTPTargetConnection 元素中。

在这里查看示例:

http://apigee.com/docs/api-services/content/load-balancing-across-backend-servers

如果您确实想将 TargetEndpoint 定义卷曲到您的 API 代理,请查看以下示例脚本以查看有效的 API 调用:

https://github.com/apigee/api-platform-samples/blob/master/tools/proxy_gen.sh

此脚本向您展示如何创建 API 代理并通过 API 调用更新 ProxyEndpoint 和 TargetEndpoints。

© www.soinside.com 2019 - 2024. All rights reserved.