Поскольку наш мониторинг осуществляется с платформы Windows, мы хотели бы использовать PowerShell для получения информации из ambari-rest-api.
В браузере можно изучить api. Сначала войдите, затем можно вставить используемый URL: https://someazurenode.westeurope.cloudapp.azure.com/ambari/api/v1/clusters Он просто показывает ответ json в браузере.
В завитке:
curl --user myusr:mypwd --insecure -i -H 'X-Requested-By:ambari' -X GET https://someazurenode.westeurope.cloudapp.azure.com/ambari/api/v1/clusters
Работает отлично
В PowerShell (после отключения ssl-проверки **):
$cred = New-Object System.Management.Automation.PSCredential ("myusr", (ConvertTo-SecureString "mypwd" -AsPlainText -Force))
Invoke-WebRequest -Method Get `
-UseBasicParsing `
-Uri "https://someazurenode.westeurope.cloudapp.azure.com/api/v1/clusters" -Headers @{"X-Requested-By"="Ambari"} `
-Credential $cred
--> 404
Вроде что-то с авторизацией, поэтому попробовал вариант ниже (**):
Invoke-WebRequest -Method GET `
-Uri "https://someazurenode.westeurope.cloudapp.azure.com/api/v1/clusters" `
-Headers @{Authorization =[Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes('myusr:mypwd'))}
-> 404 Не найдено
** Вдохновение для игнорирования ssl-проверки: Игнорирование себя- Подписанные сертификаты от Powershell Invoke-RestMethod не работают (снова изменились ...)
** Идея для обработки базовой аутентификации Используйте Invoke-WebRequest с именем пользователя и паролем для базовой аутентификации в GitHub API