Unable to access admin URL of Azure Functions

﹥>﹥吖頭↗ 提交于 2019-12-11 04:30:04

问题


I am using powershell and trying to access Azure functions Administration using api. I am trying to get list of all functions created under $appName

Certainly i am changing $appName with actual Azure Function name before call

I also got valid $authToken before this call.

Below URL:

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

and the error in my powershell execution is :

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

I tried make it POST instead of GET but same error.

I tried access this url in broswer and the error in my broswer is :

http 401 means unauthorized.

Then i also tried access this URL from postman with Bearer auth correctly set but get below errors:

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

What am i not doing correctly?

Not able to fix this error. Is the url discontinued by Azure function site now?


回答1:


Due to you just post the partial PowerShell code and the error information seems to be a network issue, I don't know what real issue you got is and how to fix it.

So I just post my work PowerShell script at here, you can refer to my code to fix your issue.

$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"

Note: you can follow the figures below to get the $userName and $userPWD values.

Fig 1. On Azure portal, open the Platform features tab of your Function App and click the Deployment Center link

Fig 2. Select the FTP option in the first step of SOURCE CONTROL and click the Dashboard button to copy the values of Username and Password, but just use the part of Username with $ prefix as $userName in my script



来源:https://stackoverflow.com/questions/54843059/unable-to-access-admin-url-of-azure-functions

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!