Get-AzureRmAppServicePlan и Get-AzureRmWebApp возвращают исключения в Runbook

Я хотел бы получить все свойства с Get-AzureRm* Команды в Runbook автоматизации, но следующие возвращают исключение. Как кодировать, чтобы эти команды работали правильно?

  • Возвращает исключение
    • Get-AzureRmAppServicePlan
    • Get-AzureRmWebApp
  • Возвращает ожидаемый результат
    • Get-AzureRmStorageAccount

вход - Powershell Runbook (не рабочий процесс)

Write-Output $PSVersionTable
$resourceGroupName = "(snipped)"
$appServicePlans = Get-AzureRmAppServicePlan -ResourceGroupName $resourceGroupName

$Cred = Get-AutomationPSCredential -Name "pscred" # works as expected
Add-AzureRmAccount -Credential $Cred
Add-AzureAccount -Credential $Cred

$appServicePlans = `
    Get-AzureRmAppServicePlan -ResourceGroupName $resourceGroupName
$appServices = `
    Get-AzureRmWebApp -ResourceGroupName $resourceGroupName
$storageAccounts = `
    Get-AzureRmStorageAccount -ResourceGroupName $resourceGroupName

выход

[Тест] в портале управления

Name                           Value
----                           -----
PSVersion                      5.0.10514.2
WSManStackVersion              3.0
SerializationVersion           1.1.0.1
CLRVersion                     4.0.30319.19455
BuildVersion                   10.0.10514.2
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0...}
PSRemotingProtocolVersion      2.3

Get-AzureRmAppServicePlan : The term 'Get-AzureRmAppServicePlan' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

At (position in the source)
+ $appServicePlans = Get-AzureRmAppServicePlan -ResourceGroupName $reso ...
+                    ~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (Get-AzureRmAppServicePlan:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

Get-AzureRmWebApp : The term 'Get-AzureRmWebApp' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the spelling of the name, or if a path was included, verify that the path is correct and try again.

At (position in the source)
+ $appServices = Get-AzureRmWebApp -ResourceGroupName $resourceGroupNam ...
+                ~~~~~~~~~~~~~~~~~
+ CategoryInfo          : ObjectNotFound: (Get-AzureRmWebApp:String) [], CommandNotFoundException
+ FullyQualifiedErrorId : CommandNotFoundException

# $storageAccounts has got as expected

[Актив] - [Модуль] список

Azure
Azure.Storage 
AzureRM.Automation 
AzureRM.Compute 
AzureRM.Profile 
AzureRM.Resources 
AzureRM.Sql 
AzureRM.Storage 
Microsoft.PowerShell.Core 
Microsoft.PowerShell.Diagnostics 
Microsoft.PowerShell.Management 
Microsoft.PowerShell.Security 
Microsoft.PowerShell.Utility 
Microsoft.WSMan.Management 
Orchestrator.AssetManagement.Cmdlets 

1 ответ

Решение

Поэтому вам нужно импортировать соответствующие модули в свою учетную запись автоматизации Azure. Для этих командлетов - AzureRM.Websites.

Чтобы импортировать модуль из галереи модулей автоматизации с помощью портала Azure

  1. На портале Azure откройте свою учетную запись автоматизации.
  2. Нажмите на плитку Активы, чтобы открыть список активов.
  3. Нажмите на плитку Модули, чтобы открыть список модулей.
  4. Нажмите кнопку "Обзор галереи", и запустится блейд "Обзор галереи".
  5. Найдите модуль, который вас интересует, и выберите его, чтобы просмотреть его детали. Когда вы углубляетесь в конкретный модуль, вы можете просмотреть дополнительную информацию о модуле, включая ссылку на галерею PowerShell, все необходимые зависимости и все командлеты и / или ресурсы DSC, которые содержит модуль.
  6. Чтобы установить модуль непосредственно в Azure Automation, нажмите кнопку "Импорт".
    Когда вы нажмете кнопку "Импорт", вы увидите имя модуля, который вы собираетесь импортировать. Если все зависимости установлены, кнопка ОК будет активной. Если у вас отсутствуют зависимости, вам необходимо импортировать их, прежде чем вы сможете импортировать этот модуль.
  7. Нажмите OK, чтобы импортировать модуль, и модуль будет запущен. Когда Azure Automation импортирует модуль в вашу учетную запись, он извлекает метаданные о модуле и командлетах.

Это может занять пару минут, так как каждое действие должно быть извлечено.

Вы получите уведомление о развертывании модуля и уведомление о его завершении. После импорта модуля вы увидите доступные действия и сможете использовать его ресурсы в ваших книгах запусков и конфигурации требуемого состояния.

Вот ссылка для более подробной информации: https://docs.microsoft.com/en-us/azure/automation/automation-runbook-gallery

Другие вопросы по тегам