Я хочу проверить свой код AWS локально, поэтому мне нужно установить прокси для клиента AWS.
Существует прокси-хост (http://user@pass:my -corporate-proxy.com: 8080 ) установить в моем окружении через переменную HTTPS_PROXY
.
Я не нашел способа установить прокси как единое целое, поэтому я придумал следующий код:
AmazonSNS sns = AmazonSNSClientBuilder.standard()
.withClientConfiguration(clientConfig(System.getenv("HTTPS_PROXY")))
.withRegion(Regions.fromName(System.getenv("AWS_REGION")))
.withCredentials(new DefaultAWSCredentialsProviderChain())
.build();
ClientConfiguration clientConfig(String proxy) {
ClientConfiguration configuration = new ClientConfiguration();
if (proxy != null && !proxy.isEmpty()) {
Matcher matcher = Pattern.compile("(\\w{3,5})://((\\w+):(\\w+)@)?(.+):(\\d{1,5})").matcher(proxy);
if (!matcher.matches()) {
throw new IllegalArgumentException("Proxy not valid: " + proxy);
}
configuration.setProxyHost(matcher.group(5));
configuration.setProxyPort(Integer.parseInt(matcher.group(6)));
configuration.setProxyUsername(matcher.group(3));
configuration.setProxyPassword(matcher.group(4));
}
return configuration;
}
Весь метод clientConfig
- это только стандартный код.
Есть ли какой-нибудь элегантный способ, как этого добиться?