Asset di tipo variabile in Automazione di AzureVariable assets in Azure Automation

Gli asset di tipo variabile sono valori disponibili per tutti i runbook e le configurazioni DSC nell'account di automazione.Variable assets are values that are available to all runbooks and DSC configurations in your automation account. Possono essere creati, modificati e recuperati dal portale di Azure, da Windows PowerShell e dall'interno di un runbook o di una configurazione DSC.They can be created, modified, and retrieved from the Azure portal, Windows PowerShell, and from within a runbook or DSC configuration. Le variabili di automazione sono utili per gli scenari seguenti:Automation variables are useful for the following scenarios:

  • Condivisione di un valore tra più runbook o configurazioni DSC.Share a value between multiple runbooks or DSC configurations.

  • Condivisione di un valore tra più processi dello stesso runbook o configurazione DSC.Share a value between multiple jobs from the same runbook or DSC configuration.

  • Gestione di un valore dal portale o dalla riga di comando di Windows PowerShell usata da runbook o configurazioni DSC, ad esempio un set di elementi di configurazione comuni come un elenco specifico di nomi di VM, un gruppo di risorse specifico, un nome di dominio AD e così via.Manage a value from the portal or from the Windows PowerShell command line that is used by runbooks or DSC configurations, such as a set of common configuration items like specific list of VM names, a specific resource group, an AD domain name, etc.

Le variabili di automazione vengono salvate in maniera permanente in modo da continuare a essere disponibili anche in caso di errore del runbook o della configurazione DSC.Automation variables are persisted so that they continue to be available even if the runbook or DSC configuration fails. In tal modo, è anche possibile impostare in un runbook un valore che verrà quindi usato da un altro runbook oppure dallo stesso runbook o configurazione DSC alla successiva esecuzione.This also allows a value to be set by one runbook that is then used by another, or is used by the same runbook or DSC configuration the next time that it is run.

Quando si crea una variabile, è possibile specificare che venga archiviata in modalità crittografata.When a variable is created, you can specify that it be stored encrypted. Se una variabile viene crittografata, viene archiviata in modo sicuro in Automazione di Azure e non è possibile recuperarne il valore con il cmdlet Get-AzureRmAutomationVariable incluso nel modulo Azure PowerShell.When a variable is encrypted, it is stored securely in Azure Automation, and its value cannot be retrieved from the Get-AzureRmAutomationVariable cmdlet that ships as part of the Azure PowerShell module. L'unico modo in cui è possibile recuperare un valore crittografato è dall'attività Get-AutomationVariable in un runbook o configurazione DSC.The only way that an encrypted value can be retrieved is from the Get-AutomationVariable activity in a runbook or DSC configuration.

Nota

Gli asset sicuri in Automazione di Azure includono credenziali, certificati, connessioni e variabili crittografate.Secure assets in Azure Automation include credentials, certificates, connections, and encrypted variables. Questi asset vengono crittografati e archiviati in Automazione di Azure tramite una chiave univoca generata per ogni account di automazione.These assets are encrypted and stored in the Azure Automation using a unique key that is generated for each automation account. La chiave viene crittografata da un certificato master e archiviata in Automazione di Azure.This key is encrypted by a master certificate and stored in Azure Automation. Prima dell'archiviazione di un asset sicuro, la chiave per l'account di automazione viene decrittografata mediante il certificato master e viene quindi usata per crittografare l'asset.Before storing a secure asset, the key for the automation account is decrypted using the master certificate and then used to encrypt the asset.

Tipi di variabileVariable types

Quando si crea una variabile con il portale di Azure, è necessario selezionare un tipo di dati nell'elenco a discesa, in modo che nel portale possa essere visualizzato il controllo appropriato per immettere il valore della variabile.When you create a variable with the Azure portal, you must specify a data type from the drop-down list so the portal can display the appropriate control for entering the variable value. La variabile non è limitata a questo tipo di dati, ma è necessario impostarla usando Windows PowerShell se si intende specificare un valore di tipo diverso.The variable is not restricted to this data type, but you must set the variable using Windows PowerShell if you want to specify a value of a different type. Se si specifica Non definito, il valore della variabile verrà impostato su $null e sarà necessario impostare il valore con il cmdlet Set-AzureAutomationVariable o l'attività Set-AutomationVariable.If you specify Not defined, then the value of the variable will be set to $null, and you must set the value with the Set-AzureAutomationVariable cmdlet or Set-AutomationVariable activity. Non è possibile creare o modificare il valore per un tipo di variabile complesso nel portale, ma è possibile indicare un valore di qualsiasi tipo usando Windows PowerShell.You cannot create or change the value for a complex variable type in the portal, but you can provide a value of any type using Windows PowerShell. I tipi complessi verranno restituiti come PSCustomObject.Complex types will be returned as a PSCustomObject.

È possibile archiviare più valori in una singola variabile creando una matrice o una tabella hash e salvandola nella variabile.You can store multiple values to a single variable by creating an array or hashtable and saving it to the variable.

Di seguito è riportato un elenco dei tipi di variabile disponibili in Automazione:The following are a list of variable types available in Automation:

  • StringString
  • IntegerInteger
  • DateTimeDateTime
  • BooleanBoolean
  • NullNull

Eseguire lo script della creazione e della gestione delle variabiliScripting the creation and management of variables

I cmdlet della tabella seguente vengono usati per creare e gestire variabili di automazione con Windows PowerShell.The cmdlets in the following table are used to create and manage Automation variables with Windows PowerShell. Sono inclusi nel modulo Azure PowerShell , disponibile per l'uso nei runbook di Automazione e nella configurazione DSC.They ship as part of the Azure PowerShell module which is available for use in Automation runbooks and DSC configuration.

CmdletsCmdlets DescrizioneDescription
Get-AzureRmAutomationVariableGet-AzureRmAutomationVariable Recupera il valore di una variabile esistente.Retrieves the value of an existing variable.
New-AzureRmAutomationVariableNew-AzureRmAutomationVariable Crea una nuova variabile e ne imposta il valore.Creates a new variable and sets its value.
Remove-AzureRmAutomationVariableRemove-AzureRmAutomationVariable Rimuove una variabile esistente.Removes an existing variable.
Set-AzureRmAutomationVariableSet-AzureRmAutomationVariable Imposta il valore di una variabile esistente.Sets the value for an existing variable.

Le attività flusso di lavoro incluse nella tabella seguente vengono usate per accedere alle variabili di automazione in un runbook.The workflow activities in the following table are used to access Automation variables in a runbook. Sono disponibili per l'uso solo in un runbook o configurazione DSC e non vengono fornite come parte del modulo Azure PowerShell.They are only available for use in a runbook or DSC configuration, and do not ship as part of the Azure PowerShell module.

Attività flusso di lavoroWorkflow Activities DescrizioneDescription
Get-AutomationVariableGet-AutomationVariable Recupera il valore di una variabile esistente.Retrieves the value of an existing variable.
Set-AutomationVariableSet-AutomationVariable Imposta il valore di una variabile esistente.Sets the value for an existing variable.

Nota

È consigliabile evitare di usare le variabili nel parametro –Name di Get-AutomationVariable in un runbook o una configurazione DSC perché ciò può complicare l'individuazione delle dipendenze tra i runbook o la configurazione DSC e le variabili di automazione in fase di progettazione.You should avoid using variables in the –Name parameter of Get-AutomationVariable in a runbook or DSC configuration since this can complicate discovering dependencies between runbooks or DSC configuration, and Automation variables at design time.

Le funzioni nella tabella seguente vengono usate per accedere e recuperare le variabili in un runbook di Python2.The functions in the following table are used to access and retrieve variables in a Python2 runbook.

Funzioni Python2Python2 Functions DescrizioneDescription
automationassets.get_automation_variableautomationassets.get_automation_variable Recupera il valore di una variabile esistente.Retrieves the value of an existing variable.
automationassets.set_automation_variableautomationassets.set_automation_variable Imposta il valore di una variabile esistente.Sets the value for an existing variable.

Nota

È necessario importare il modulo "automationassets" nella parte superiore del runbook Python per poter accedere alle funzioni dell'asset.You must import the "automationassets" module at the top of your Python runbook in order to access the asset functions.

Creazione di una nuova variabile di automazioneCreating a new Automation variable

Per creare una nuova variabile con il portale di AzureTo create a new variable with the Azure portal

  1. Dall'account di automazione fare clic sul riquadro Asset e poi sul pannello Asset selezionare Variabili.From your Automation account, click the Assets tile and then on the Assets blade, select Variables.
  2. Nel riquadro Variabili selezionare Aggiungi variabile.On the Variables tile, select Add a variable.
  3. Completare le opzioni nel pannello Nuova variabile, fare clic su Crea e salvare la nuova variabile.Complete the options on the New Variable blade and click Create save the new variable.

Per creare una nuova variabile con Windows PowerShellTo create a new variable with Windows PowerShell

Il cmdlet New-AzureRmAutomationVariable crea una nuova variabile e ne imposta il valore iniziale.The New-AzureRmAutomationVariable cmdlet creates a new variable and sets its initial value. È possibile recuperare il valore usando Get-AzureRmAutomationVariable.You can retrieve the value using Get-AzureRmAutomationVariable. Se il valore è di tipo semplice, verrà restituito lo stesso tipo.If the value is a simple type, then that same type is returned. Se è di tipo complesso, verrà restituito un PSCustomObject .If it’s a complex type, then a PSCustomObject is returned.

I comandi di esempio seguenti mostrano come creare una variabile di tipo stringa e restituirne il valore.The following sample commands show how to create a variable of type string and then return its value.

New-AzureRmAutomationVariable -ResourceGroupName "ResouceGroup01" 
–AutomationAccountName "MyAutomationAccount" –Name 'MyStringVariable' `
–Encrypted $false –Value 'My String'
$string = (Get-AzureRmAutomationVariable -ResourceGroupName "ResouceGroup01" `
–AutomationAccountName "MyAutomationAccount" –Name 'MyStringVariable').Value

I comandi di esempio seguenti mostrano come creare una variabile di tipo complesso e restituirne le relative proprietà.The following sample commands show how to create a variable with a complex type and then return its properties. In questo caso, viene usato un oggetto macchina virtuale recuperato da Get-AzureRmVm.In this case, a virtual machine object from Get-AzureRmVm is used.

$vm = Get-AzureRmVm -ResourceGroupName "ResourceGroup01" –Name "VM01"
New-AzureRmAutomationVariable –AutomationAccountName "MyAutomationAccount" –Name "MyComplexVariable" –Encrypted $false –Value $vm

$vmValue = (Get-AzureRmAutomationVariable -ResourceGroupName "ResourceGroup01" `
–AutomationAccountName "MyAutomationAccount" –Name "MyComplexVariable").Value
$vmName = $vmValue.Name
$vmIpAddress = $vmValue.IpAddress

Uso di una variabile in un Runbook o in una configurazione DSCUsing a variable in a runbook or DSC configuration

Usare l'attività Set-AutomationVariable per impostare il valore di una variabile di automazione in un runbook di PowerShell o una configurazione DSC e Get-AutomationVariable per recuperarlo.Use the Set-AutomationVariable activity to set the value of an Automation variable in a PowerShell runbook or DSC configuration, and the Get-AutomationVariable to retrieve it. Non è consigliabile usare i cmdlet Set-AzureAutomationVariable o Get-AzureAutomationVariable in un runbook o una configurazione DSC perché sono meno efficienti rispetto alle attività flusso di lavoro.You shouldn't use the Set-AzureAutomationVariable or Get-AzureAutomationVariable cmdlets in a runbook or DSC configuration since they are less efficient than the workflow activities. Non è inoltre possibile recuperare il valore delle variabili sicure con Get-AzureAutomationVariable.You also cannot retrieve the value of secure variables with Get-AzureAutomationVariable. L'unico modo per creare una nuova variabile dall'interno di un runbook o una configurazione DSC consiste nell'usare il cmdlet New-AzureAutomationVariable.The only way to create a new variable from within a runbook or DSC configuration is to use the New-AzureAutomationVariable cmdlet.

Esempi di runbook testualiTextual runbook samples

Impostazione e recupero di un valore semplice da una variabileSetting and retrieving a simple value from a variable

I comandi di esempio seguenti mostrano come impostare e recuperare una variabile in un runbook testuale.The following sample commands show how to set and retrieve a variable in a textual runbook. In questo esempio si presuppone che siano già state create variabili di tipo integer denominate NumberOfIterations e NumberOfRunnings e una variabile di tipo stringa denominata SampleMessage.In this sample, it is assumed that variables of type integer named NumberOfIterations and NumberOfRunnings and a variable of type string named SampleMessage have already been created.

$NumberOfIterations = Get-AzureRmAutomationVariable -ResourceGroupName "ResouceGroup01" –AutomationAccountName "MyAutomationAccount" -Name 'NumberOfIterations'
$NumberOfRunnings = Get-AzureRmAutomationVariable -ResourceGroupName "ResouceGroup01" –AutomationAccountName "MyAutomationAccount" -Name 'NumberOfRunnings'
$SampleMessage = Get-AutomationVariable -Name 'SampleMessage'

Write-Output "Runbook has been run $NumberOfRunnings times."

for ($i = 1; $i -le $NumberOfIterations; $i++) {
   Write-Output "$i`: $SampleMessage"
}
Set-AzureRmAutomationVariable -ResourceGroupName "ResouceGroup01" –AutomationAccountName "MyAutomationAccount" –Name NumberOfRunnings –Value ($NumberOfRunnings += 1)

Impostazione e recupero di un oggetto complesso in una variabileSetting and retrieving a complex object in a variable

Il codice di esempio seguente mostra come aggiornare una variabile con un valore complesso in un runbook testuale.The following sample code shows how to update a variable with a complex value in a textual runbook. In questo esempio una macchina virtuale di Azure viene recuperata con Get-AzureVM e salvata in una variabile di automazione esistente.In this sample, an Azure virtual machine is retrieved with Get-AzureVM and saved to an existing Automation variable. Come illustrato in Tipi di variabile, viene archiviata come PSCustomObject.As explained in Variable types, this is stored as a PSCustomObject.

$vm = Get-AzureVM -ServiceName "MyVM" -Name "MyVM"
Set-AutomationVariable -Name "MyComplexVariable" -Value $vm

Nel codice seguente il valore viene recuperato dalla variabile e usato per avviare la macchina virtuale.In the following code, the value is retrieved from the variable and used to start the virtual machine.

$vmObject = Get-AutomationVariable -Name "MyComplexVariable"
if ($vmObject.PowerState -eq 'Stopped') {
   Start-AzureVM -ServiceName $vmObject.ServiceName -Name $vmObject.Name
}

Impostazione e recupero di una raccolta in una variabileSetting and retrieving a collection in a variable

Il codice di esempio seguente mostra come usare una variabile con una raccolta di valori complessi in un runbook testuale.The following sample code shows how to use a variable with a collection of complex values in a textual runbook. In questo esempio più macchine virtuali di Azure vengono recuperate con Get-AzureVM e salvate in una variabile di automazione esistente.In this sample, multiple Azure virtual machines are retrieved with Get-AzureVM and saved to an existing Automation variable. Come illustrato in Tipi di variabile, viene archiviata una raccolta di PSCustomObject.As explained in Variable types, this is stored as a collection of PSCustomObjects.

$vms = Get-AzureVM | Where -FilterScript {$_.Name -match "my"}     
Set-AutomationVariable -Name 'MyComplexVariable' -Value $vms

Nel codice seguente la raccolta viene recuperata dalla variabile e usata per avviare ogni macchina virtuale.In the following code, the collection is retrieved from the variable and used to start each virtual machine.

$vmValues = Get-AutomationVariable -Name "MyComplexVariable"
ForEach ($vmValue in $vmValues)
{
   if ($vmValue.PowerState -eq 'Stopped') {
      Start-AzureVM -ServiceName $vmValue.ServiceName -Name $vmValue.Name
   }
}

Impostazione e recupero di una variabile in Python2Setting and retrieving a variable in Python2

L'esempio di codice seguente illustra come usare una variabile, impostare una variabile e gestire un'eccezione per una variabile non esistente in un runbook di Python2.The following sample code shows how to use a variable, set a variable, and handle an exception for a non-existent variable in a Python2 runbook.

import automationassets
from automationassets import AutomationAssetNotFound

# get a variable
value = automationassets.get_automation_variable("test-variable")
print value

# set a variable (value can be int/bool/string)
automationassets.set_automation_variable("test-variable", True)
automationassets.set_automation_variable("test-variable", 4)
automationassets.set_automation_variable("test-variable", "test-string")

# handle a non-existent variable exception
try:
    value = automationassets.get_automation_variable("non-existing variable")
except AutomationAssetNotFound:
    print "variable not found"

Esempi di runbook graficiGraphical runbook samples

In un runbook grafico è possibile aggiungere Get-AutomationVariable o Set-AutomationVariable facendo clic con il pulsante destro del mouse sulla variabile nel riquadro della libreria dell'editor grafico e scegliendo l'attività desiderata.In a graphical runbook, you add the Get-AutomationVariable or Set-AutomationVariable by right-clicking on the variable in the Library pane of the graphical editor and selecting the activity you want.

Aggiungere una variabile al canvas

Impostazione dei valori in una variabileSetting values in a variable

La figura seguente illustra attività di esempio per aggiornare una variabile con un valore semplice in un runbook grafico.The following image shows sample activities to update a variable with a simple value in a graphical runbook. In questo esempio viene recuperata una singola macchina virtuale di Azure con Get-AzureRmVM e il nome computer viene salvato in una variabile di automazione esistente di tipo stringa.In this sample, a single Azure virtual machine is retrieved with Get-AzureRmVM and the computer name is saved to an existing Automation variable with a type of String. Non è importante se il collegamento è una pipeline o una sequenza poiché è previsto solo un singolo oggetto nell'output.It doesn't matter whether the link is a pipeline or sequence since we only expect a single object in the output.

Impostare una variabile semplice

Passaggi successiviNext Steps