Distribuzione di modelli di Azure Resource Manager - Script di PowerShell

Questo script consente di distribuire un modello di Resource Manager in un gruppo di risorse nella sottoscrizione.

Se necessario, installare il modulo Azure PowerShell usando le istruzioni disponibili nella Guida di Azure PowerShell e quindi eseguire Login-AzureRmAccount per creare una connessione con Azure. È inoltre necessario disporre di una chiave pubblica SSH denominata id_rsa.pub nella directory .ssh del profilo utente.

Se non si ha una sottoscrizione di Azure, creare un account gratuito prima di iniziare.

Script di esempio

<#
 .SYNOPSIS
    Deploys a template to Azure

 .DESCRIPTION
    Deploys an Azure Resource Manager template
#>

param (
    [Parameter(Mandatory)]
    #The subscription id where the template will be deployed.
    [string]$SubscriptionId,  

    [Parameter(Mandatory)]
    #The resource group where the template will be deployed. Can be the name of an existing or a new resource group.
    [string]$ResourceGroupName, 

    #Optional, a resource group location. If specified, will try to create a new resource group in this location. If not specified, assumes resource group is existing.
    [string]$ResourceGroupLocation, 

    #The deployment name.
    [Parameter(Mandatory)]
    [string]$DeploymentName,    

    #Path to the template file. Defaults to template.json.
    [string]$TemplateFilePath = "template.json",  

    #Path to the parameters file. Defaults to parameters.json. If file is not found, will prompt for parameter values based on template.
    [string]$ParametersFilePath = "parameters.json"
)

$ErrorActionPreference = "Stop"

# Login to Azure and select subscription
Write-Output "Logging in"
Login-AzureRmAccount
Write-Output "Selecting subscription '$SubscriptionId'"
Select-AzureRmSubscription -SubscriptionID $SubscriptionId

# Create or check for existing resource group
$resourceGroup = Get-AzureRmResourceGroup -Name $ResourceGroupName -ErrorAction SilentlyContinue
if ( -not $ResourceGroup ) {
    Write-Output "Could not find resource group '$ResourceGroupName' - will create it"
    if ( -not $ResourceGroupLocation ) {
        $ResourceGroupLocation = Read-Host -Prompt 'Enter location for resource group'
    }
    Write-Output "Creating resource group '$ResourceGroupName' in location '$ResourceGroupLocation'"
    New-AzureRmResourceGroup -Name $resourceGroupName -Location $resourceGroupLocation
}
else {
    Write-Output "Using existing resource group '$ResourceGroupName'"
}

# Start the deployment
Write-Output "Starting deployment"
if ( Test-Path $ParametersFilePath ) {
    New-AzureRmResourceGroupDeployment -ResourceGroupName $ResourceGroupName -TemplateFile $TemplateFilePath -TemplateParameterFile $ParametersFilePath
}
else {
    New-AzureRmResourceGroupDeployment -ResourceGroupName $ResourceGroupName -TemplateFile $TemplateFilePath
}

Pulire la distribuzione

Eseguire il comando seguente per rimuovere il gruppo di risorse e tutte le risorse correlate.

Remove-AzureRmResourceGroup -Name myResourceGroup

Spiegazione dello script

Questo script usa i comandi seguenti per creare la distribuzione. Ogni elemento della tabella include collegamenti alla documentazione specifica del comando.

Comando Note
Register-AzureRmResourceProvider Registra un provider di risorse in modo che i relativi tipi di risorse possano essere distribuiti nella sottoscrizione in uso.
Get-AzureRmResourceGroup Ottiene i gruppi di risorse.
New-AzureRmResourceGroup Consente di creare un gruppo di risorse in cui sono archiviate tutte le risorse.
New-AzureRmResourceGroupDeployment Aggiunge una distribuzione di Azure a un gruppo di risorse.
Remove-AzureRmResourceGroup Rimuove un gruppo di risorse e tutte le risorse contenute al suo interno.

Passaggi successivi