我试图在apigee边缘使用键/值映射操作,但我似乎无法得到任何变量。我已经发现我已经创建了一个组织级别的键/值,但我仍然无法弄清楚如何获取这些值。我创建的数据来自样本,如下所示:
{
"entry": [
{
"name": "Development",
"value": "65.87.18.18"
},
{
"name": "Staging",
"value": "65.87.18.22"
}
],
"name": "ipAddresses"
}
我已经按照这样的方式配置了我的政策
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-1" mapIdentifier="ipAddresses">
<DisplayName>Key Value Map Operations 1</DisplayName>
<FaultRules/>
<Properties/>
<ExclusiveCache>false</ExclusiveCache>
<ExpiryTimeInSecs>-1</ExpiryTimeInSecs>
<Get assignTo="myvar" index="1" >
<Key>
<Parameter ref="entry.Development"></Parameter>
</Key>
</Get>
<Scope>organization</Scope>
</KeyValueMapOperations>
但每当我对此进行追踪时,myVar始终为空。我已经为参数ref尝试了各种值,例如
但似乎没有任何效果。有什么建议?我在某处需要一个基本的auth标头吗?
我甚至尝试在apiproxy范围内进行此操作并同时播种地图,但即使这样也不会返回任何内容。这是使用政策的默认值!
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
<KeyValueMapOperations async="false" continueOnError="false" enabled="true" name="Key-Value-Map-Operations-2" mapIdentifier="newkey">
<DisplayName>Key Value Map Operations 2</DisplayName>
<FaultRules/>
<Properties/>
<ExclusiveCache>false</ExclusiveCache>
<ExpiryTimeInSecs>-1</ExpiryTimeInSecs>
<InitialEntries>
<Entry>
<Key>
<Parameter>k1</Parameter>
</Key>
<Value>v1</Value>
</Entry>
<Entry>
<Key>
<Parameter>k2</Parameter>
</Key>
<Value>v3</Value>
<Value>v4</Value>
</Entry>
</InitialEntries>
<Get assignTo="mynewvar" index="1">
<Key>
<Parameter ref="k1"></Parameter>
</Key>
</Get>
<Scope>apiproxy</Scope>
</KeyValueMapOperations>
我无能为力,但我认为我错过了一些非常明显的东西,或者我完全误解了地图的概念
答案 0 :(得分:2)
对于遇到此问题的其他人,问题是我正在使用
<Parameter ref="k1"></Parameter>
要检索该值,实际上它应该是
<Parameter>k1</Parameter>