无法访问 Azure Functions 的管理员 URL

Unable to access admin URL of Azure Functions

我正在使用 powershell 并尝试使用 api 访问 Azure 功能管理。 我正在尝试获取在 $appName

下创建的所有函数的列表

当然我在调用之前将 $appName 更改为实际的 Azure 函数名称

我在这次调用之前也获得了有效的 $authToken。

低于URL:

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

我的 powershell 执行错误是:

调用-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,但浏览器中的错误是:

http 401 表示未授权。

然后我也尝试从 postman 访问这个 URL 并且 Bearer auth 设置正确但出现以下错误:

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

我做错了什么?

无法修复此错误。 url 现在被 Azure 功能站点停用了吗?

由于您只是 post 部分 PowerShell 代码和错误信息似乎是网络问题,我不知道您遇到的真正问题是什么以及如何解决。

所以我只是 post 我的工作 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 门户上,打开 Function App 的 Platform features 选项卡并单击 Deployment Center link

图2.SelectSOURCE CONTROL第一步中的FTP选项点击Dashboard按钮复制Username的值和Password,但在我的脚本

中只使用 Username 的带有 $ 前缀的部分作为 $userName