Как создать ресурс azure с помощью задачи powershell в azure devops release pipe? - PullRequest
1 голос
/ 02 февраля 2020

Я хочу создать план обслуживания приложения (потребление) с помощью задачи powershell. Для этого я использовал Azure задачу Powershell, и мой код:

[cmdletbinding()]
    param (
        $AppServicePlanLocation, 
        $AppServicePlanResourceGroupName,
        $AppServicePlan_Name
    )

$location = $AppServicePlanLocation
$resourceGroupName = $AppServicePlanResourceGroupName
$appServicePlanName = $AppServicePlan_Name

Write-Host "SafeCreateAppServicePlan.Parameter:location: $location"
Write-Host "SafeCreateAppServicePlan.Parameter:resourceGroupName: $resourceGroupName"
Write-Host "SafeCreateAppServicePlan.Parameter:appServicePlanName: $appServicePlanName"

$SkuName = "Y1"
$SkuTier = "Dynamic"
$WebAppApiVersion = "2015-08-01"

$fullObject = @{
    location = $location
    sku = @{
        name = $SkuName
        tier = $SkuTier
    }
}

Write-Host "Ensuring the $appServicePlanName app service plan exists"
$plan = Get-AzureRmAppServicePlan -Name $appServicePlanName -ResourceGroupName $resourceGroupName -ErrorAction SilentlyContinue
if(-not $plan) {
    Write-Host "Creating $appServicePlanName app service plan"
    New-AzureRmResource -ResourceGroupName $resourceGroupName -ResourceType Microsoft.Web/serverfarms -Name $appServicePlanName -IsFullObject -PropertyObject $fullObject -ApiVersion $WebAppApiVersion -Force
}
else {
    Write-Host "$appServicePlanName app service plan already exists"   
}

Но он дает ошибку: термин «Get-AzureRmAppServicePlan» не распознается как имя командлета, функция, файл сценария или работоспособная программа. Проверьте правильность написания имени или, если путь был указан, проверьте правильность пути и повторите попытку.

Azure Задача Powershell не распознает команду Get-AzureRmAppServicePlan.

Примечание: я не использовал простую задачу PowerShell, я использовал Azure задачу Powershell.

Ответы [ 2 ]

2 голосов
/ 03 февраля 2020

Если вы используете последнюю версию задачи - замените все команды *AzureRM* на *Az* (или включить обратную совместимость ), так как это поддерживаемый Azure модуль Powershell, текущий ( AzureRM один устарел и больше не поддерживается).

https://docs.microsoft.com/en-us/powershell/azure/migrate-from-azurerm-to-az?view=azps-3.3.0

пс. Если вы используете предыдущую версию задачи - AzureRM должно работать

0 голосов
/ 02 февраля 2020

Вы не упоминаете, какую версию Задачи Azure PowerShell вы используете, или контекст, в котором работает агент, Hosted \ Private. Оба могут повлиять, если модуль будет доступен.

Может проверить и проверить, доступен ли модуль AzureRM.Websites.

$ Get-Module Azure* -list | Select-Object Name,Version,Path

Возможно, вам придется вручную загрузить модуль или указать более старую версию задачи Azure PowerShell, поскольку модули AzureRM не будут автоматически доступны при использовании более новой версии задача .

...