删除损坏的 Azure Functions 应用程序
Delete a corrupted Azure Functions App
我创建了一个函数应用程序,然后创建了一个函数,函数名称默认为 TriggerCSharp1
或类似名称。
添加代码后,我想知道如何更改函数名称,所以我尝试 Ftp 进入函数应用程序并手动更改文件夹名称 TriggerCSharp1
。我返回到 Azure 门户,现在当我单击函数应用程序时出现错误 The access token is invalid.
,并且下面没有任何内容,请参阅下面的 screen-shot。
我不确定现在如何删除这个功能应用程序,因为我无法进入它 blade。我现在唯一能想到的方法就是删除包含此功能应用程序的资源组,但这不是我能做的,因为我还有大量其他资源。
编辑:
正如 David 所建议的,resources.azure.com 更简单并且不需要客户端位。
使用 Azure-CLI 和命令 azure site delete <site name>
解决了
如果您想在 PowerShell 中执行此操作,类似下面的内容应该可以工作...
Login-AzureRmAccount #Enter your username / pw
$funcApp = Get-AzureRmWebApp -Name "Your Function App Name"
Remove-AzureRmWebApp -WebApp $funcApp
如果您有多个订阅,请确保您使用的是正确的订阅。如果您不想要检查提示,您还可以在删除命令中添加 -Confirm:$true。
一个功能应用程序可能包含多个功能,因此如果只有一个功能被破坏,则删除整个功能应用程序可能有点矫枉过正。对于处于这种情况的用户,删除 Kudu console/using powershell 中的函数文件夹是更好的方法。
使用 KUDU 控制台
- 转到
https://<yourFunctionApp>.scm.azurewebsites.net
- 单击
DEBUG(top bar) -> CMD
,然后在出现的新页面中导航至 site -> wwwroot
- 在那里找到您的函数并将其删除(单击 Edit/pencil 图标右侧的图标)
使用 POWERSHELL
(基于 this)
$username = '<publish username>' #IMPORTANT: use single quotes as username may contain $
$password = "<publish password>"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))
$commandBody = @{
command = "rm -d -r myAzureFunction"
dir = "site\wwwroot"
}
$deleteUrl = "https://<myFunctionApp>.scm.azurewebsites.net/api/command"
Invoke-RestMethod -Uri $deleteUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method POST `
-ContentType "application/json" -Body (ConvertTo-Json $commandBody)
发布用户名和发布密码可以获取详细here
$creds = Invoke-AzureRmResourceAction -ResourceGroupName YourResourceGroup -ResourceType Microsoft.Web/sites/config -ResourceName YourWebApp/publishingcredentials -Action list -ApiVersion 2015-08-01 -Force
$username = $creds.Properties.PublishingUserName
$password = $creds.Properties.PublishingPassword
我创建了一个函数应用程序,然后创建了一个函数,函数名称默认为 TriggerCSharp1
或类似名称。
添加代码后,我想知道如何更改函数名称,所以我尝试 Ftp 进入函数应用程序并手动更改文件夹名称 TriggerCSharp1
。我返回到 Azure 门户,现在当我单击函数应用程序时出现错误 The access token is invalid.
,并且下面没有任何内容,请参阅下面的 screen-shot。
我不确定现在如何删除这个功能应用程序,因为我无法进入它 blade。我现在唯一能想到的方法就是删除包含此功能应用程序的资源组,但这不是我能做的,因为我还有大量其他资源。
编辑: 正如 David 所建议的,resources.azure.com 更简单并且不需要客户端位。
使用 Azure-CLI 和命令 azure site delete <site name>
如果您想在 PowerShell 中执行此操作,类似下面的内容应该可以工作...
Login-AzureRmAccount #Enter your username / pw
$funcApp = Get-AzureRmWebApp -Name "Your Function App Name"
Remove-AzureRmWebApp -WebApp $funcApp
如果您有多个订阅,请确保您使用的是正确的订阅。如果您不想要检查提示,您还可以在删除命令中添加 -Confirm:$true。
一个功能应用程序可能包含多个功能,因此如果只有一个功能被破坏,则删除整个功能应用程序可能有点矫枉过正。对于处于这种情况的用户,删除 Kudu console/using powershell 中的函数文件夹是更好的方法。
使用 KUDU 控制台
- 转到
https://<yourFunctionApp>.scm.azurewebsites.net
- 单击
DEBUG(top bar) -> CMD
,然后在出现的新页面中导航至site -> wwwroot
- 在那里找到您的函数并将其删除(单击 Edit/pencil 图标右侧的图标)
使用 POWERSHELL (基于 this)
$username = '<publish username>' #IMPORTANT: use single quotes as username may contain $
$password = "<publish password>"
$base64AuthInfo = [Convert]::ToBase64String([Text.Encoding]::ASCII.GetBytes(("{0}:{1}" -f $username,$password)))
$commandBody = @{
command = "rm -d -r myAzureFunction"
dir = "site\wwwroot"
}
$deleteUrl = "https://<myFunctionApp>.scm.azurewebsites.net/api/command"
Invoke-RestMethod -Uri $deleteUrl -Headers @{Authorization=("Basic {0}" -f $base64AuthInfo)} -Method POST `
-ContentType "application/json" -Body (ConvertTo-Json $commandBody)
发布用户名和发布密码可以获取详细here
$creds = Invoke-AzureRmResourceAction -ResourceGroupName YourResourceGroup -ResourceType Microsoft.Web/sites/config -ResourceName YourWebApp/publishingcredentials -Action list -ApiVersion 2015-08-01 -Force
$username = $creds.Properties.PublishingUserName
$password = $creds.Properties.PublishingPassword