问题描述
我正在尝试让我的 Azure 实例使用代理服务器来处理他发出的所有调用。
我正在创建一个 azure 实例:
Azure azure = Azure.configure().withProxy(createProxy(hasProxy)).authenticate(credentials).withSubscription(subscriptionId)
我的创建代理方法:
private static Proxy createProxy(String hostPort) throws ServiceWareException {
String[] arr = hostPort.split(":");
String host = arr[0];
String port = arr[1];
SocketAddress addr = new InetSocketAddress(host,Integer.parseInt(port));
return new Proxy(Proxy.Type.HTTP,addr);
}
执行此操作后,我可以在我的代理服务器调用中看到 login.microsoftonline.com:443.
问题是这是 Azure 唯一一次通过我的代理进行调用。
我列出了虚拟机、网络观察者、负载平衡等...
我之前创建的带有 azure
变量的所有内容。
编辑: 更准确地说,我认为 azure 在执行上述操作时仅通过我的代理服务器发出一个请求是没有意义的,所以我想找出原因。
解决方法
关于问题,请参考以下代码
ApplicationTokenCredentials credentials = new ApplicationTokenCredentials(clientId,tenant,clientSecret,AzureEnvironment.AZURE);
credentials.withProxy(createProxy());
Azure azure = Azure.configure()
.withProxy(createProxy())
.withLogLevel(LogLevel.BODY_AND_HEADERS)
.authenticate(credentials)
.withSubscription(subId);
private static Proxy createProxy() {
SocketAddress addr = new InetSocketAddress("",Integer.parseInt(""));
return new Proxy(Proxy.Type.HTTP,addr);
}