Gestire le risorse con Azure PowerShell e Resource Manager

Questo articolo illustra come gestire le soluzioni con Azure PowerShell e Azure Resource Manager. Se non si ha familiarità con Resource Manager, vedere Panoramica di Azure Resource Manager. Questo argomento è incentrato sulle attività di gestione. Si apprenderà come:

  1. Creare un gruppo di risorse
  2. Aggiungere una risorsa al gruppo di risorse
  3. Aggiungere un tag alla risorsa
  4. Eseguire query sulle risorse in base ai nomi o ai valori dei tag
  5. Applicare e rimuovere un blocco sulla risorsa
  6. Eliminare un gruppo di risorse

Questo articolo non illustra come distribuire un modello di Resource Manager nella sottoscrizione. Per informazioni in merito, vedere Distribuire le risorse con i modelli di Azure Resource Manager e Azure PowerShell.

guida introduttiva ad Azure PowerShell

Se Azure PowerShell non è installato, vedere l'articolo su come installare e configurare Azure PowerShell.

Se Azure PowerShell è stato installato in passato ma non è stato aggiornato di recente, è consigliabile installare l'ultima versione. È possibile aggiornare la versione con lo stesso metodo usato per l'installazione. Se è stata usata l'Installazione guidata piattaforma Web, ad esempio, avviarla di nuovo e cercare un aggiornamento.

Per controllare la versione del modulo Resources di Azure, usare il cmdlet seguente:

Get-Module -ListAvailable -Name AzureRm.Resources | Select Version

Questo argomento è stato aggiornato per la versione 3.3.0. Se si ha una versione precedente, l'esperienza utente potrebbe non corrispondere ai passaggi illustrati in questo argomento. Per la documentazione sui cmdlet di questa versione, vedere AzureRM.Resources Module (Modulo AzureRM.Resources).

Accedere all'account Azure

Prima di usare la soluzione, è necessario accedere al proprio account.

Per accedere al proprio account Azure, usare il cmdlet Login-AzureRmAccount.

Login-AzureRmAccount

Il cmdlet richiede le credenziali di accesso per l'account di Azure. Dopo l'accesso, vengono scaricate le impostazioni dell'account in modo che siano disponibili per Azure PowerShell.

Il cmdlet restituisce informazioni sull'account e la sottoscrizione da usare per le attività.

Environment           : AzureCloud
Account               : example@contoso.com
TenantId              : {guid}
SubscriptionId        : {guid}
SubscriptionName      : Example Subscription One
CurrentStorageAccount :

Se si hanno più sottoscrizioni, è possibile passare a un'altra sottoscrizione. Per prima cosa, visualizzare tutte le sottoscrizioni dell'account.

Get-AzureRmSubscription

Vengono restituite le sottoscrizioni abilitate e disabilitate.

SubscriptionName : Example Subscription One
SubscriptionId   : {guid}
TenantId         : {guid}
State            : Enabled

SubscriptionName : Example Subscription Two
SubscriptionId   : {guid}
TenantId         : {guid}
State            : Enabled

SubscriptionName : Example Subscription Three
SubscriptionId   : {guid}
TenantId         : {guid}
State            : Disabled

Per passare a un'altra sottoscrizione, specificarne il nome con il cmdlet Set-AzureRmContext.

Set-AzureRmContext -SubscriptionName "Example Subscription Two"

Creare un gruppo di risorse

Prima di distribuire risorse nella sottoscrizione, è necessario creare un gruppo di risorse che conterrà le risorse.

Per creare un gruppo di risorse, usare il cmdlet New-AzureRmResourceGroup . Il comando usa il parametro Name per specificare un nome per il gruppo di risorse e il parametro Location per specificarne la posizione.

New-AzureRmResourceGroup -Name TestRG1 -Location "South Central US"

L'output presenta il formato seguente:

ResourceGroupName : TestRG1
Location          : southcentralus
ProvisioningState : Succeeded
Tags              :
ResourceId        : /subscriptions/{guid}/resourceGroups/TestRG1

Se è necessario recuperare il gruppo di risorse in un secondo momento, usare il cmdlet seguente:

Get-AzureRmResourceGroup -ResourceGroupName TestRG1

Per ottenere tutti i gruppi di risorse della sottoscrizione, non specificare un nome:

Get-AzureRmResourceGroup

Aggiungere risorse a un gruppo di risorse

Per aggiungere una risorsa al gruppo di risorse, è possibile usare il cmdlet New-AzureRmResource oppure un cmdlet specifico del tipo di risorsa che viene creato (ad esempio, New-AzureRmStorageAccount). Usare un cmdlet specifico di un tipo di risorsa può risultare più semplice perché il cmdlet include i parametri per le proprietà necessarie per la nuova risorsa. Per usare New-AzureRmResource, è necessario conoscere tutte le proprietà da impostare senza che vengano richieste.

Aggiungere una risorsa tramite i cmdlet, tuttavia, potrebbe causare confusione in futuro perché la nuova risorsa non è inclusa in un modello di Resource Manager. È consigliabile definire l'infrastruttura per la soluzione di Azure in un modello di Resource Manager. I modelli consentono di distribuire la soluzione in modo affidabile e ripetutamente. Per questo argomento viene creato un account di archiviazione con un cmdlet di PowerShell, ma successivamente viene generato un modello dal gruppo di risorse.

Il cmdlet seguente crea un account di archiviazione. Anziché usare il nome indicato nell'esempio, specificare un nome univoco per l'account di archiviazione. Il nome deve essere di lunghezza compresa tra 3 e 24 caratteri e contenere solo numeri e lettere minuscole. Se si usa il nome indicato nell'esempio, verrà visualizzato un errore perché tale nome è già in uso.

New-AzureRmStorageAccount -ResourceGroupName TestRG1 -AccountName mystoragename -Type "Standard_LRS" -Location "South Central US"

Se è necessario recuperare la risorsa in un secondo momento, usare il cmdlet seguente:

Get-AzureRmResource -ResourceName mystoragename -ResourceGroupName TestRG1

Aggiungere un tag

I tag consentono di organizzare le risorse in base a diverse proprietà. È ad esempio possibile che diverse risorse in diversi gruppi di risorse appartengano allo stesso reparto. È possibile applicare un tag e un valore di reparto a tali risorse per contrassegnarle come appartenenti alla stessa categoria oppure indicare se una risorsa viene usata in un ambiente di produzione o di testing. In questo argomento si applicano tag a una sola risorsa, ma nell'ambiente in uso è probabilmente opportuno applicare tag a tutte le risorse.

Il cmdlet seguente applica due tag all'account di archiviazione:

Set-AzureRmResource -Tag @{ Dept="IT"; Environment="Test" } -ResourceName mystoragename -ResourceGroupName TestRG1 -ResourceType Microsoft.Storage/storageAccounts

I tag vengono aggiornati come un singolo oggetto. Per aggiungere un tag a una risorsa che già include tag, per prima cosa recuperare i tag esistenti. Aggiungere il nuovo tag all'oggetto contenente i tag esistenti e riapplicare tutti i tag alla risorsa.

$tags = (Get-AzureRmResource -ResourceName mystoragename -ResourceGroupName TestRG1).Tags
$tags += @{Status="Approved"}
Set-AzureRmResource -Tag $tags -ResourceName mystoragename -ResourceGroupName TestRG1 -ResourceType Microsoft.Storage/storageAccounts

Cercare le risorse

Per recuperare le risorse in base a diverse condizioni di ricerca, usare il cmdlet Find-AzureRmResource.

  • Per ottenere una risorsa in base al nome, specificare il parametro ResourceNameContains:

    Find-AzureRmResource -ResourceNameContains mystoragename
    
  • Per ottenere tutte le risorse in un gruppo di risorse, specificare il parametro ResourceGroupNameContains:

    Find-AzureRmResource -ResourceGroupNameContains TestRG1
    
  • Per ottenere tutte le risorse con un nome e un valore di tag, specificare i parametri TagName e TagValue:

    Find-AzureRmResource -TagName Dept -TagValue IT
    
  • Per ottenere tutte le risorse con un determinato tipo di risorsa, specificare il parametro ResourceType:

    Find-AzureRmResource -ResourceType Microsoft.Storage/storageAccounts
    

Bloccare una risorsa

Quando è necessario assicurarsi che una risorsa strategica non venga eliminata o modificata accidentalmente, applicare un blocco alla risorsa. È possibile specificare CanNotDelete o ReadOnly.

Per creare o eliminare i blocchi di gestione, è necessario avere accesso alle azioni Microsoft.Authorization/* o Microsoft.Authorization/locks/*. Fra i ruoli predefiniti, solo a Proprietario e Amministratore Accesso utenti sono concesse tali azioni.

Per applicare un blocco, usare il cmdlet seguente:

New-AzureRmResourceLock -LockLevel CanNotDelete -LockName LockStorage -ResourceName mystoragename -ResourceType Microsoft.Storage/storageAccounts -ResourceGroupName TestRG1

La risorsa bloccata nell'esempio precedente non potrà essere eliminata finché non verrà rimosso il blocco. Per rimuovere un blocco, usare:

Remove-AzureRmResourceLock -LockName LockStorage -ResourceName mystoragename -ResourceType Microsoft.Storage/storageAccounts -ResourceGroupName TestRG1

Per altre informazioni sull'impostazione di blocchi, vedere l'articolo su come bloccare le risorse con Azure Resource Manager.

Rimuovere risorse o un gruppo di risorse

È possibile rimuovere una risorsa o un gruppo di risorse. Quando si rimuove un gruppo di risorse, si rimuovono anche tutte le risorse in esso contenute.

  • Per eliminare una risorsa dal gruppo di risorse, usare il cmdlet Remove-AzureRmResource . Questo cmdlet elimina la risorsa, ma non il gruppo di risorse.

    Remove-AzureRmResource -ResourceName mystoragename -ResourceType Microsoft.Storage/storageAccounts -ResourceGroupName TestRG1
    
  • Per eliminare un gruppo di risorse e tutte le relative risorse, usare il cmdlet Remove-AzureRmResourceGroup.

    Remove-AzureRmResourceGroup -Name TestRG1
    

Per entrambi i cmdlet viene richiesto di confermare che si vuole rimuovere la risorsa o il gruppo di risorse. Se l'eliminazione della risorsa o del gruppo di risorse viene completata, l'operazione restituisce True.

Eseguire script di Resource Manager con Automazione di Azure

Questo argomento illustra come eseguire operazioni di base sulle risorse con Azure PowerShell. Per scenari di gestione più avanzati, è in genere opportuno creare uno script e riusare tale script in base alle esigenze o a una pianificazione. Automazione di Azure consente di automatizzare gli script di uso frequente che gestiscono le soluzioni di Azure.

Gli argomenti seguenti illustrano come usare Automazione di Azure, Resource Manager e PowerShell per eseguire attività di gestione in modo efficace:

Passaggi successivi