2016-08-16 27 views
0

我已经创建了一个功能应用程序,然后创建了一个功能,功能名称默认为TriggerCSharp1或类似。删除损坏的Azure功能应用程序

添加代码后,我想知道如何更改函数名称,所以我试着进入函数应用程序并手动更改文件夹名称TriggerCSharp1。我回到Azure门户,现在当我点击功能应用程序时,出现错误The access token is invalid.,下面没有任何内容出现,请参阅下面的屏幕截图。

enter image description here

我不知道我怎么能删除该功能的应用程序,现在因为我不能在其刀片得到。我现在能想到的唯一方法是删除包含此功能应用程序的资源组,但这不是我可以做的事情,因为我也有大量其他资源。

回答

1

编辑: 作为建议由大卫,resources.azure.com是比较容易的,不需要客户端位。


使用Azure-CLI用命令azure site delete <site name>

+8

获得对于未来的参考,你也可以使用https://resources.azure。 com /,这比CLI更容易,并且不需要客户端位。 –

+0

我认为David Ebbo的上述评论应该是它自己的一个答案 - 它的工作原理也为我们提供了很多其他的机会。 – bevada

0

如果你想这样做在PowerShell中解决,类似下面应该工作...

Login-AzureRmAccount #Enter your username/pw 
$funcApp = Get-AzureRmWebApp -Name "Your Function App Name" 
Remove-AzureRmWebApp -WebApp $funcApp 

如果你有一个以上的订阅那么确保你使用正确的。如果您不想检查提示,您也可以为remove命令添加-Confirm:$ true。

1

一个功能的应用程序可能包含多个功能,因此,如果只有一个功能损坏,删除整个功能的应用程序可能是矫枉过正。对于那些在这种情况下删除功能文件夹在Kudu控制台/使用PowerShell是一个更好的方法。

使用KUDU CONSOLE

  1. 转到https://<yourFunctionApp>.scm.azurewebsites.net
  2. 点击DEBUG(top bar) -> CMD并在显示导航到site -> wwwroot
  3. 找到你的函数存在,并删除它的新页面(点击图标编辑/铅笔图标的右侧)

使用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 
+0

命令“rm -d -r myAzureFunction”是什么“语言”?如果我运行CMD或PowerShell调试控制台(https://minestuff.scm.azurewebsites.net/DebugConsole),那么rm命令不会工作/存在。(所以我不能测试任何东西)我实际上试图摆脱“site \ wwwroot”下的所有(希望)一次执行。 – granadaCoder

+0

我在https://json.codes/blog/deploying-to-azure上找到了$ commandBody = @ { command =“del/S/F/Q。\\” dir =“site \\ wwwroot” } -using-kudu /这将删除文件,但不会删除目录......如果任何人有递归删除所有文件/子文件夹,请在此处张贴。 (用一个“Invoke-RestMethod”调用..)! – granadaCoder

+0

@granadaCoder rm命令中的-r开关应递归删除目录。您可以使用Powershell调试控制台进行检查。 “语言”是linux命令行中经常使用的语言,但是powershell支持这种语言。运行命令后,您可以刷新页面以确认文件夹已被删除吗?这个对我有用 – raghav710