我有一个地图对象,我需要检查它是否包含给定的键。我尝试如下,但它总是返回 false。还有如何在地图内部replyMessage上提取值,
map=%{
Envelope: %{
Body: %{
replyMessage: %{
cc: %{
"amount" => "100.00",
"reasonCode" => "100",
},
decision: "ACCEPT",
invalidField: nil,
purchaseTotals: %{"currency" => "CAD"},
reasonCode: "100",
}
}
}
}
Map.has_key?(map, %{Envelope: %{Body: %{replyMessage: replyMessage}}})= false
Run Code Online (Sandbox Code Playgroud) 我想对下面的对象列表进行排序,以便返回列表按照提供的键列表的顺序包含对象。例如:
Given object list:
my_list==> [{"ipnetworkaddress", [], "33.33.123.148"}, {"httpbrowsertype", [], "Mozilla"}, {"hostname", [], "example.com"}]
Given order list having object first attribute for criteria:
ordered_keys ===> ["hostname", "httpbrowsertype", "ipnetworkaddress"]
Desired result ==> [{"hostname", [], "example.com"}, {"httpbrowsertype", [], "Mozilla"}, {"ipnetworkaddress", [], "33.33.123.148"} ]
Run Code Online (Sandbox Code Playgroud) 我如何为我的 VirtuelService 编写规则,使得带有 url "/v1/myservice" 和标头 "x-client-id: test" 的流量应该路由到 "my-service-v2-dev",否则带有 url "/v1" 的流量/myservice”和任何标头都应该路由到“my-service-dev”下面是我的代码,它没有按预期工作,所有流量都去“my-service-v2-dev”。
有人可以帮助我并让我知道我在这里犯了什么错误吗?提前致谢。
apiVersion: networking.istio.io/v1alpha3
kind: VirtualService
metadata:
name: my-public-dev
namespace: my-dev
spec:
gateways:
- my-public-dev
hosts:
- my-public-dev.com.digital
http:
- match:
- headers:
x-client-id:
exact: test
- uri:
prefix: /v1/myservice/
name: myservice-v2-route
route:
- destination:
host: my-service-v2-dev
port:
number: 8080
- match:
- uri:
prefix: /v1/myservice/
name: myservice-v1-route
route:
- destination:
host: my-service-dev
port:
number: 8888
Run Code Online (Sandbox Code Playgroud)