2016-08-16 2 views
0

Я создал приложение функций, а затем создал функцию, имя функции по умолчанию - TriggerCSharp1 или аналогичное.Удалить поврежденные функции Azure App

После добавления кода мне было интересно, как изменить имя функции, поэтому я попробовал Ftp'ing в приложении функций и вручную изменил имя папки TriggerCSharp1. Я вернулся на портал Azure, и теперь, когда я нажимаю на функциональное приложение, я получаю сообщение об ошибке The access token is invalid., и ничто не появляется внизу, см. Снимок экрана ниже.

enter image description here

Я не знаю, как я могу удалить эту функцию приложение теперь, так как я не могу получить в лезвии. Единственный способ, о котором я могу думать сейчас, - удалить группу ресурсов, которая содержит это функциональное приложение, но это не то, что я могу сделать, так как у меня есть множество других ресурсов.

ответ

1

Edit: По предложению Давида, resources.azure.com проще и не требует клиентских битов.


решаемые с помощью Azure-CLI с помощью команды azure site delete <site name>

+8

Для дальнейшего использования, вы можете также использовать https://resources.azure. com /, что немного проще, чем CLI и не требует клиентских бит. –

+0

Я думаю, что вышеупомянутый комментарий Дэвида Эббо должен быть ответом сам по себе - он работает, а также открывает множество других возможностей. – bevada

0

Если вы хотите сделать это в PowerShell, что-то вроде следующего должно работать ...

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

Если у вас есть более одной подписки затем убедитесь, что вы используете правильный. Вы также можете добавить -Confirm: $ true для команды remove, если вы не хотите, чтобы запрос проверки.

1

Однофункциональное приложение может содержать несколько функций и, следовательно, удалять все функциональное приложение, если только одна функция повреждена, может быть излишним. Для тех, кто в этой ситуации, удаление папки функций в консоли Kudu/использование powershell - лучший способ.

ИСПОЛЬЗОВАНИЯ Куды КОНСОЛИ

  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

Я нашел $ commandBody = @ { command = "del/S/F/Q. \\" dir = "site \\ wwwroot" } по адресу https://json.codes/blog/deploying-to-azure -using-kudu/this удаляет файлы, но не каталоги ...... Если кто-то удаляет все файлы/подпапки рекурсивно, напишите здесь. (с одним вызовом «Invoke-RestMethod» ..)! – granadaCoder

+0

@granadaCoder -r-переключатель в команде rm должен рекурсивно удалять каталоги. Вы можете проверить это, используя консоль отладки Powershell. «Язык» - это тот, который обычно используется в командной строке linux, но у powershell есть поддержка для этого. Вы можете обновить страницу после запуска команды, чтобы подтвердить удаление папки? Меня устраивает – raghav710