簡體   English   中英

如何通過 azure devops 發布管道中的 powershell 任務創建 azure 資源?

[英]How to create a azure resource through powershell task in azure devops release pipeline?

我想通過 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”未被識別為 cmdlet、函數、腳本文件或可運行程序的名稱。 檢查名稱的拼寫,或者如果包含路徑,請驗證路徑是否正確,然后重試。

Azure Powershell 任務無法識別 Get-AzureRmAppServicePlan 命令。

注意:我沒有使用過簡單的 powershell 任務,我使用過 Azure Powershell 任務。

如果您使用的是最新版本的任務 - 將所有*AzureRM*命令替換為*Az* (或啟用向后兼容性),因為這是當前受支持的 Azure Powershell 模塊( AzureRM模塊已折舊且不再受支持)。

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

附: 如果您使用的是以前版本的任務 - AzureRM應該可以工作

你沒有提到你正在使用的 Azure PowerShell 任務的任務版本,或者代理運行的上下文,Hosted\\Private。 如果模塊可用,這兩者都會產生影響。

可以檢查 AzureRM.Websites 模塊是否可用。

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

您可能需要手動加載模塊,或指定較舊版本的 Azure PowerShell 任務,因為在使用較新版本的任務時 AzureRM 模塊不會自動可用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM