无法访问 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
我正在使用 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