如何从Azure的ARM订阅中的自动化帐户中的Runbook中运行的Azure的Powershell中重新启动AppService?
我认为方法是:
Restart-AzureWebsite -Name "your-appservice-name"
但是得到了:
Restart-AzureWebsite : No default subscription has been designated.
Use select-AzureSubscription -Default #<subscriptionName> to set the default subscription.
Azure PowerShell中没有可用的Restart-AzureRmWebApp。
以下所有组合都会导致一堆其他错误消息:
$Cred = Get-AutomationPSCredential -Name 'your-credentials-name'
Add-AzureAccount -Credential $Cred
Add-AzureRMAccount -Credential $Cred
Get-AzureSubscription –SubscriptionName 'your-subscription-name' | Select-AzureSubscription -Default
Restart-AzureWebsite -Name "your-appservice-name"
答案 0 :(得分:3)
Azure PowerShell中没有可用的Restart-AzureRmWebApp。
正如 Walter - MSFT 提到我们可以导入AzureRM.Websites,在此之前我们需要将AzureRM.Profile
更新为 4.0 ,您可以参考更多细节截图。
在此之前,我们可以创建Azure AD服务主体本地。 如何创建服务主体我们可以参考这个document
Login-AzureRmAccount
$sp = New-AzureRmADServicePrincipal -DisplayName exampleapp -Password "password"
Sleep 20
New-AzureRmRoleAssignment -RoleDefinitionName Contributor -ServicePrincipalName $sp.ApplicationId
在Runbook中运行Restart-AzureRmWebApp命令。
$azureAplicationId ="Application Id"
$azureTenantId= "tenant Id"
$azurePassword = ConvertTo-SecureString "password" -AsPlainText -Force
$psCred = New-Object System.Management.Automation.PSCredential($azureAplicationId , $azurePassword)
Add-AzureRmAccount -Credential $psCred -TenantId $azureTenantId -ServicePrincipal
Restart-AzureRmWebApp -ResourceGroupName "ResourceGroup" -Name "WebApp Name"
答案 1 :(得分:0)
此Powershell脚本在Azure自动化Runbook中运行:
Invoke-AzureRmResourceAction -ResourceGroupName "<your-resource-group-name>" -ResourceName "<your-resource-name>" -ResourceType 'Microsoft.Web/sites' -Action 'Restart' -Force
修改强>
然而下一个剧本可能更好;它依赖于@Tom Sun的上述答案,即
在自动化帐户/凭据下创建。
$Cred = Get-AutomationPSCredential -Name '<your-credentials>'
Add-AzureRMAccount -Credential $Cred
Get-AzureRmSubscription –SubscriptionName '<your-subscription-name>' | Select-AzureRmSubscription
Restart-AzureRmWebApp -ResourceGroupName "office" -Name "<your-appservice-name>"