我是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。
我目前有一个针对他们的Rest资源,例如:
/resource
基本上,我希望带有一个rest资源的apigee api代理可以根据环境映射到4个不同的目标端点。
到目前为止,我已经尝试通过UI进行操作,但是还没有做到。
我一直在浏览文档,到目前为止已经找到了这些:
据此,应该有可能:
“ API代理可以包含零个或多个TargetEndpoint。 (TargetEndpoint部分)
http://apigee.com/docs/api-services/content/api-proxy-configuration-reference
根据这些,您可以对代理端点进行路由,但是我无法将其实现到目标端点:
Create a New Endpoint on an existing API Proxy with "No Target Endpoint"
One API proxy calling two different target endpoints
我还尝试针对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>
那有可能吗?
您能给我建议如何做吗?
我们正在迁移到Apigee,我们的工作期限很艰巨,因此我们将不胜感激!
谢谢!
最佳答案
Apigee支持Target Servers的概念-从代理中提取后端主机,并提供负载平衡。可以将相同的目标服务器配置为指向每种环境的不同主机(此概念已内置到Apigee中)。
看看,这应该会有所帮助。
斯里坎特
关于api - 一个Apigee Api代理,每个环境具有不同的目标终结点,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/22933346/