Невозможно получить доступ к URL-адресу администратора функций Azure - PullRequest
0 голосов
/ 23 февраля 2019

Я использую PowerShell и пытаюсь получить доступ к функциям Azure Администрирование с помощью API.Я пытаюсь получить список всех функций, созданных в $ appName

Конечно, я меняю $ appName с фактическим именем функции Azure перед вызовом

Я также получил действительный $ authToken перед этим вызовом.

Ниже URL:

$Functions = Invoke-RestMethod -Method GET -Headers @{Authorization = ("Bearer {0}" -f $authToken)} -Uri "https://$appName.azurewebsites.net/admin/functions"

, и ошибка в моем выполнении powershell:

Invoke-RestMethod:

The underlying connection was closed: An unexpected error occurred on a send.
At KeyFA.ps1:36 char:18
+ ... Functions = Invoke-RestMethod -Method GET -Headers @{Authorization =  ...
+                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    + CategoryInfo          : InvalidOperation: (System.Net.HttpWebRequest:HttpWebRequest) [Invoke-RestMethod], WebException
    + FullyQualifiedErrorId : WebCmdletWebResponseException,Microsoft.PowerShell.Commands.InvokeRestMethodCommand

Я попытался сделать это POST вместо GET, но с той же ошибкой.

Я попытался получить доступ к этому URL в broswer, и ошибка в моем broswer:

http 401 означает несанкционированный доступ.

Затем я также попытался получить доступ к этому URL из почтальона с правильно установленным аутентификацией на предъявителя, но получить ошибки ниже:

Could not get any response
There was an error connecting to 
https://appname_comes_here.azurewebsites.net/admin/functions/

Что я делаю неправильно?

Не могуисправить эту ошибку.URL-адрес больше не поддерживается сайтом функций Azure?

1 Ответ

0 голосов
/ 25 февраля 2019

Из-за того, что вы просто публикуете частичный код PowerShell, а информация об ошибке, похоже, связана с сетью, я не знаю, какая у вас реальная проблема и как ее исправить.

Поэтому я просто публикуюМой рабочий скрипт PowerShell здесь, вы можете обратиться к моему коду для решения вашей проблемы.

$appName = "<your app name>"
$userName='<your app credential user name>'
$userPWD='<your app credential user password>'

$apiBaseUrl = "https://$($appName).scm.azurewebsites.net/api"
$appBaseUrl = "https://$($appName).azurewebsites.net"

$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $userName,$userPWD)))

$jwt = Invoke-RestMethod -Uri "$apiBaseUrl/functions/admin/token" -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method GET

$Functions = Invoke-RestMethod -Method GET -Headers @{Authorization = ("Bearer {0}" -f $jwt)} -Uri "$appBaseUrl/admin/functions"

Примечание: вы можете следовать приведенным ниже рисункам, чтобы получить значения $userName и $userPWD.

Рис. 1. На портале Azure откройте вкладку Platform features своего приложения-функции и нажмите на ссылку Deployment Center

enter image description here

Рис. 2Выберите опцию FTP на первом шаге SOURCE CONTROL и нажмите кнопку Dashboard, чтобы скопировать значения Username и Password, но просто используйте часть Username с префиксом $ в качестве$userName в моем сценарии

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...