Usare l'interfaccia della riga di comando di Azure per gestire risorse e gruppi di risorse

L'interfaccia della riga di comando di Azure è uno degli strumenti che è possibile usare per distribuire e gestire le risorse con Resource Manager. Questo articolo illustra i metodi comuni per gestire risorse e gruppi di risorse di Azure usando l'interfaccia della riga di comando di Azure in modalità Resource Manager. Per informazioni sull'uso dell'interfaccia della riga di comando per distribuire le risorse, vedere Distribuire le risorse con i modelli di Azure Resource Manager e l'interfaccia della riga di comando di Azure. Per informazioni sulle risorse di Azure e su Resource Manager, vedere Panoramica di Azure Resource Manager.

Nota

Per gestire le risorse di Azure con l'interfaccia della riga di comando di Azure, è necessario installare l'interfaccia della riga di comando di Azure e accedere ad Azure usando il comando azure login. Verificare che l'interfaccia della riga di comando sia in modalità Resource Manager eseguendo azure config mode arm. Se queste operazioni sono già state eseguite, si è pronti per proseguire.

Ottenere le risorse e i gruppi di risorse

Gruppi di risorse

Per ottenere un elenco di tutti i gruppi di risorse della sottoscrizione e delle rispettive posizioni, eseguire questo comando.

azure group list

Risorse

Per elencare tutte le risorse in un gruppo, ad esempio nel gruppo con nome testRG, usare il comando seguente:

azure resource list testRG

Per visualizzare una singola risorsa nel gruppo, ad esempio una VM denominata MyUbuntuVM, usare un comando come il seguente:

azure resource show testRG MyUbuntuVM Microsoft.Compute/virtualMachines -o "2015-06-15"

Notare il parametro Microsoft.Compute/virtualMachines. Questo parametro indica il tipo di risorsa per il quale si stanno richiedendo informazioni.

Nota

Quando si usano i comandi azure resource, a eccezione di list, è necessario specificare la versione dell'API della risorsa con il parametro -o. Se non si è certi della versione dell'API, consultare il file modello e trovare il campo apiVersion relativo alla risorsa. Per altre informazioni sulle versioni dell'API in Resource Manager, vedere Provider e tipi di risorse.

Quando si visualizzano i dettagli su una risorsa, è spesso utile utilizzare il parametro--json. Questo parametro rende l'output più leggibile perché alcuni valori sono strutture annidate o raccolte. L'esempio seguente illustra come restituire i risultati del comando show come un documento JSON.

azure resource show testRG MyUbuntuVM Microsoft.Compute/virtualMachines -o "2015-06-15" --json
Nota

Se necessario, salvare i dati JSON nel file usando il carattere > per indirizzare l'output a un file. Ad esempio:

azure resource show testRG MyUbuntuVM Microsoft.Compute/virtualMachines -o "2015-06-15" --json > myfile.json

Tag

Per aggiungere un tag a un gruppo di risorse, usare azure group set. Se il gruppo di risorse non dispone di tag, passare il tag.

azure group set -n tag-demo-group -t Dept=Finance

I tag vengono aggiornati nel loro complesso. Se si vuole aggiungere un tag a un gruppo di risorse che dispone di tag, è possibile passare tutti i tag.

azure group set -n tag-demo-group -t Dept=Finance;Environment=Production;Project=Upgrade

I tag non vengono ereditati dalle risorse in un gruppo di risorse. Per aggiungere un tag a una risorsa, usare azure resource set. Passare il numero di versione API per il tipo di risorsa a cui si sta aggiungendo il tag. Se è necessario recuperare la versione dell'API, usare il comando seguente con il provider di risorse per il tipo che si sta impostando:

azure provider show -n Microsoft.Storage --json

Nei risultati, cercare il tipo di risorsa desiderato.

"resourceTypes": [
{
  "resourceType": "storageAccounts",
  ...
  "apiVersions": [
    "2016-01-01",
    "2015-06-15",
    "2015-05-01-preview"
  ]
}
...

A questo punto, specificare tale versione dell'API, il nome gruppo di risorse, il nome della risorsa, il tipo di risorsa e il valore del tag come parametri.

azure resource set -g tag-demo-group -n storagetagdemo -r Microsoft.Storage/storageAccounts -t Dept=Finance -o 2016-01-01

I tag risultano direttamente sulle risorse e sui gruppi di risorse. Per visualizzare i tag esistenti, recuperare un gruppo di risorse e le relative risorse con azure group show.

azure group show -n tag-demo-group --json

Verranno restituiti i metadati relativi al gruppo di risorse, inclusi gli eventuali tag applicati.

{
  "id": "/subscriptions/4705409c-9372-42f0-914c-64a504530837/resourceGroups/tag-demo-group",
  "name": "tag-demo-group",
  "properties": {
    "provisioningState": "Succeeded"
  },
  "location": "southcentralus",
  "tags": {
    "Dept": "Finance",
    "Environment": "Production",
    "Project": "Upgrade"
  },
  ...
}

È possibile visualizzare i tag per una particolare risorsa usando azure resource show.

azure resource show -g tag-demo-group -n storagetagdemo -r Microsoft.Storage/storageAccounts -o 2016-01-01 --json

Per recuperare tutte le risorse con un valore di tag, usare:

azure resource list -t Dept=Finance --json

Per recuperare tutti i gruppi di risorse con un valore di tag, usare:

azure group list -t Dept=Finance

È possibile visualizzare i tag esistenti nella sottoscrizione con il comando seguente:

azure tag list

Gestire risorse

Per aggiungere una risorsa, ad esempio un account di archiviazione, a un gruppo di risorse, eseguire un comando simile a:

azure resource create testRG MyStorageAccount "Microsoft.Storage/storageAccounts" "westus" -o "2015-06-15" -p "{\"accountType\": \"Standard_LRS\"}"

Oltre a specificare la versione dell'API della risorsa con il parametro -o, usare il parametro -p per passare una stringa in formato JSON con le proprietà obbligatorie o aggiuntive.

Per eliminare una risorsa esistente, ad esempio una macchina virtuale, usare un comando simile al seguente:

azure resource delete testRG MyUbuntuVM Microsoft.Compute/virtualMachines -o "2015-06-15"

Per spostare le risorse esistenti in un gruppo di risorse o una sottoscrizione diversa, usare il comando azure resource move . Il seguente esempio illustra come spostare una cache Redis in un nuovo gruppo di risorse. Nel parametro -i , fornire un elenco delimitato da virgole di id di risorsa da spostare.

azure resource move -i "/subscriptions/{guid}/resourceGroups/OldRG/providers/Microsoft.Cache/Redis/examplecache" -d "NewRG"

Controllare l'accesso alle risorse

È possibile usare l'interfaccia della riga di comando di Azure per creare e gestire i criteri per controllare l'accesso alle risorse di Azure. Per informazioni sulle definizioni dei criteri e sull'assegnazione di criteri alle risorse, vedere Usare i criteri per gestire le risorse e controllare l'accesso.

Ad esempio, definire i criteri seguenti per rifiutare tutte le richieste in cui la località non è Stati Uniti occidentali o Stati Uniti centro-settentrionali e salvarli nel file di definizione dei criteri policy.json:

{
"if" : {
    "not" : {
    "field" : "location",
    "in" : ["westus" ,  "northcentralus"]
    }
},
"then" : {
    "effect" : "deny"
}
}

Eseguire quindi il comando policy definition create:

azure policy definition create MyPolicy -p c:\temp\policy.json

Questo comando ha un output simile al seguente:

+ Creating policy definition MyPolicy data:    PolicyName:             MyPolicy data:    PolicyDefinitionId:     /subscriptions/########-####-####-####-############/providers/Microsoft.Authorization/policyDefinitions/MyPolicy

data:    PolicyType:             Custom data:    DisplayName:            undefined data:    Description:            undefined data:    PolicyRule:             field=location, in=[westus, northcentralus], effect=deny

Per assegnare un criterio nell'ambito desiderato, usare il valore di PolicyDefinitionId restituito dal comando precedente. Nell'esempio seguente, questo ambito è la sottoscrizione, ma è possibile impostare come ambito gruppi di risorse o singole risorse:

azure policy assignment create MyPolicyAssignment -p /subscriptions/########-####-####-####-############/providers/Microsoft.Authorization/policyDefinitions/MyPolicy -s /subscriptions/########-####-####-####-############/

È possibile ottenere, modificare o rimuovere le definizioni dei criteri usando i comandi policy definition show, policy definition set e policy definition delete.

Analogamente, è possibile ottenere, modificare o rimuovere le assegnazioni dei criteri usando i comandi policy assignment show, policy assignment set e policy assignment delete.

Esportare un gruppo di risorse come modello

È possibile visualizzare il modello di Resource Manager per un gruppo di risorse esistente. L'esportazione del modello offre due vantaggi:

  1. È possibile automatizzare le distribuzioni future della soluzione, perché tutti gli elementi dell'infrastruttura sono definiti nel modello.
  2. Per acquisire familiarità con la sintassi del modello, esaminare il codice JSON che rappresenta la soluzione.

Usando l'interfaccia della riga di comando di Azure, è possibile esportare un modello che rappresenta lo stato corrente del gruppo di risorse oppure scaricare il modello usato per una distribuzione specifica.

  • Esportare il modello per un gruppo di risorse: questa operazione è utile quando sono state apportate modifiche a un gruppo di risorse ed è necessario recuperare la rappresentazione JSON del rispettivo stato corrente. Il modello generato, tuttavia, contiene solo un numero minimo di parametri e nessuna variabile. La maggior parte dei valori del modello è hardcoded. Prima di distribuire il modello generato, è possibile che si voglia convertire altri valori in parametri, per potere personalizzare la distribuzione per diversi ambienti.

    Per esportare il modello per un gruppo di risorse in una directory locale, eseguire il comando azure group export, come illustrato nell'esempio seguente. Usare una directory locale appropriata per l'ambiente del sistema operativo in uso.

      azure group export testRG ~/azure/templates/
    
  • Scaricare il modello per una distribuzione specifica: questa operazione è utile quando è necessario visualizzare il modello effettivo usato per distribuire le risorse. Il modello include tutte le variabili e tutti i parametri definiti per la distribuzione originale. Se, tuttavia, un utente dell'organizzazione ha modificato il gruppo di risorse in modo diverso dalla definizione nel modello, questo modello non rappresenta lo stato corrente del gruppo di risorse.

    Per scaricare in una directory locale il modello usato per una distribuzione specifica, eseguire il comando azure group deployment template download. ad esempio:

      azure group deployment template download TestRG testRGDeploy ~/azure/templates/downloads/
    
Nota

La funzionalità di esportazione del modello è disponibile in anteprima e non tutti i tipi di risorse supportano attualmente l'esportazione di un modello. Quando si prova a esportare un modello, è possibile che venga visualizzato un errore che indica che alcune risorse non sono state esportate. Se necessario, definire manualmente queste risorse nel modello dopo averlo scaricato.

Passaggi successivi