Проблема со связью при чистке в Akamai

Случай использования:

Я использую java-программу для очистки по CPCode и по URL-адресу. Приведенный ниже фрагмент кода используется для подключения и очистки к Akamai.

credential = ClientCredential.builder().accessToken(Constants.ACCESS_TOKEN).
clientToken(Constants.CLIENT_TOKEN).clientSecret(Constants.CLIENT_SECRET).host(Constants.HOST).build();

transBuilder = new ApacheHttpTransport.Builder();
httpTransport = transBuilder.doNotValidateCertificate().build();
requestFactory = httpTransport.createRequestFactory();
uri = URI.create(“https://control.akamai.com/ccu/v3/delete/cpcode/production”); 
requestBody = "{\"objects\": ["+cpCodes+"]}";
request = requestFactory.buildPostRequest(new GenericUrl(uri),ByteArrayContent.fromString("application/json", requestBody));
requestSigner = new GoogleHttpClientEdgeGridRequestSigner(credential);
requestSigner.sign(request);
response = request.execute();

PS: ACCESS_TOKEN, CLIENT_TOKEN, CLIENT_SECRET и HOST определены в отдельных Constants.java

String HOST = «akab-tmpyt2prlt4zzld2-zvmyfb6ishptaqxc.purge.akamaiapis.net»;

Проблема: этот код отлично работает на моем компьютере с Windows (мой персональный компьютер, т. е. домашний Wi-Fi), но когда я запускаю тот же код на компьютере с Linux (клиент с защищенной сетью), я получаю следующую ошибку: Подключиться к akab-tmpyt2prlt4zzld2-zvmyfb6ishptaqxc.purge.akamaiapis.net:443 time out

Мой анализ на данный момент:

Я вижу, что это говорит о проблеме тайм-аута из Linux (клиентская защищенная сеть), а из Windows (общедоступная сеть) он никогда не жалуется на это. Я запускаю команду nslookup в Linux для этого HOST, и она работает нормально, то есть может разрешать DNS. Но когда я пробую команду wget или curl в Linux, она говорит о проблеме с тайм-аутом. Я вижу, что моя машина с Linux использует прокси для подключения к Интернету.

Раньше я думал, что моя машина с Linux не может подключиться (akab-tmpyt2prlt4zzld2-zvmyfb6ishptaqxc.purge.akamaiapis.net), но потом я заметил, что ни одна из моих Windows не может подключиться ( akab-tmpyt2prlt4zzld2-zvmyfb6ishptaqxc.purge.akamaiapis.net). В обоих случаях я получал 400 Bad request. Итак, я пришел к выводу, что эти четыре ACCESS_TOKEN, CLIENT_TOKEN, CLIENT_SECRET и HOST работают только вместе.

Теперь я пытаюсь найти, где может быть критическая точка в Linux. Есть ли что-то, что я могу попросить команду прокси добавить/разрешить какой-либо URL. Пожалуйста, предложите.


person Vaibhav Bhardwaj    schedule 23.12.2019    source источник


Ответы (1)


Я предполагаю, что на стороне Linux есть брандмауэр, который блокирует соединение с доменом akamaiapis.net. Попробуйте использовать Akamai CLI, HTTPie или curl из того же Linux, чтобы узнать, можете ли вы выполнить вызов API (см. примеры на https://developer.akamai.com/akamai-101-basics-purging)

Если вы можете сделать запрос на очистку API с помощью любого из этих инструментов CLI с того же сервера Linux, на котором выполняется ваш код Java, то вы знаете, что проблема на стороне Java.

Кроме того, ошибка тайм-аута может маскировать другую ошибку, я бы попробовал распечатать подробный журнал, чтобы получить больше информации о том, в чем именно заключается ошибка, поскольку, насколько мне известно, ответ API Akamai (если вы можете сделать вызов API) даст вам некоторое представление о что вызывает ошибку

person Javier Garza    schedule 06.01.2020