Creazione grafica in Automazione di AzureGraphical authoring in Azure Automation

IntroduzioneIntroduction

La creazione grafica consente di creare runbook per Automazione di Azure senza le complessità del codice di Windows PowerShell o del flusso di lavoro PowerShell sottostante.Graphical Authoring allows you to create runbooks for Azure Automation without the complexities of the underlying Windows PowerShell or PowerShell Workflow code. È possibile aggiungere attività da una libreria di cmdlet e runbook in un canvas e collegarle per configurare un flusso di lavoro.You add activities to the canvas from a library of cmdlets and runbooks, link them together and configure to form a workflow. Se si è già lavorato con System Center Orchestrator o Service Management Automation (SMA), si dovrebbe avere familiarità con queste operazioni.If you have ever worked with System Center Orchestrator or Service Management Automation (SMA), then this should look familiar to you.

Questo articolo offre un'introduzione alla creazione grafica e descrive i concetti necessari per iniziare la creazione di un Runbook grafico.This article provides an introduction to graphical authoring and the concepts you need to get started in creating a graphical runbook.

Runbook graficiGraphical runbooks

Tutti i Runbook in Automazione di Azure sono flussi di lavoro di Windows PowerShell.All runbooks in Azure Automation are Windows PowerShell Workflows. I runbook grafici e i runbook grafici del flusso di lavoro PowerShell generano codice di PowerShell che viene eseguito dai computer di lavoro di Automazione, ma che non può essere visualizzato o modificato direttamente dagli utenti.Graphical and Graphical PowerShell Workflow runbooks generate PowerShell code that is run by the Automation workers, but you are not able to view it or directly modify it. Un runbook grafico può essere convertito in un runbook grafico del flusso di lavoro PowerShell e viceversa, ma entrambi non possono essere convertiti in un runbook testuale.A Graphical runbook can be converted to a Graphical PowerShell Workflow runbook and vice-versa, but they cannot be converted to a textual runbook. Non è possibile importare un runbook testuale esistente nell'editor grafico.An existing textual runbook cannot be imported into the graphical editor.

Panoramica dell'editor graficoOverview of graphical editor

È possibile aprire l'editor grafico nel portale di Azure creando o modificando un Runbook grafico.You can open the graphical editor in the Azure portal by creating or editing a graphical runbook.

Area di lavoro grafica

Le sezioni seguenti descrivono i controlli dell'editor grafico.The following sections describe the controls in the graphical editor.

CanvasCanvas

Il canvas è l'area in cui vengono progettati i Runbook.The Canvas is where you design your runbook. È possibile aggiungere attività al Runbook dai nodi del controllo Library e connetterle con collegamenti per definire la logica del Runbook.You add activities from the nodes in the Library control to the runbook and connect them with links to define the logic of the runbook.

È possibile utilizzare i controlli nella parte inferiore dell'area di disegno per fare zoom avanti e indietro.You can use the controls at the bottom of the canvas to zoom in and out.

Area di lavoro grafica

Controllo LibraryLibrary control

Il controllo Library consente di selezionare attività da aggiungere al Runbook.The Library control is where you select activities to add to your runbook. È possibile aggiungerle al canvas, dove vengono connesse ad altre attività.You add them to the canvas where you connect them to other activities. Il canvas include quattro sezioni descritte nella tabella seguente.It includes four sections described in the following table.

SezioneSection DescrizioneDescription
CmdletsCmdlets Include tutti i cmdlet che possono essere usati nel Runbook.Includes all the cmdlets that can be used in your runbook. I cmdlet sono organizzati per modulo.Cmdlets are organized by module. Saranno disponibili tutti i moduli installati nell'account di Automazione.All of the modules that you have installed in your automation account will be available.
RunbookRunbooks Include i runbook dell'account di Automazione.Includes the runbooks in your automation account. Questi runbook possono essere aggiunti al canvas per essere usati come runbook figlio.These runbooks can be added to the canvas to be used as child runbooks. Vengono visualizzati solo i runbook dello stesso tipo di memoria centrale come il runbook in corso di modifica; per i runbook grafici vengono visualizzati solo i runbook basati su PowerShell, mentre per i runbook grafici del flusso di lavoro PowerShell vengono visualizzati solo i runbook basati sul flusso di lavoro PowerShell.Only runbooks of the same core type as the runbook being edited are shown; for Graphical runbooks only PowerShell-based runbooks are shown, while for Graphical PowerShell Workflow runbooks only PowerShell-Workflow-based runbooks are shown.
AssetAssets Include gli asset di automazione dell'account di automazione che è possibile usare nel Runbook.Includes the automation assets in your automation account that can be used in your runbook. Quando si aggiunge un asset a un Runbook, viene aggiunta un'attività flusso di lavoro che ottiene l'asset selezionato.When you add an asset to a runbook, it will add a workflow activity that gets the selected asset. Nel caso di attività di variabile, è possibile selezionare se aggiungere un'attività per ottenere la variabile o per impostarla.In the case of variable assets, you can select whether to add an activity to get the variable or set the variable.
Runbook ControlRunbook Control Include attività di controllo di Runbook che è possibile usare nel Runbook corrente.Includes runbook control activities that can be used in your current runbook. Una giunzione accetta più input e attende che vengano completati tutti prima di continuare il flusso di lavoro.A Junction takes multiple inputs and waits until all have completed before continuing the workflow. Un'attività codice esegue una o più righe del codice PowerShell o del flusso di lavoro PowerShell a seconda del tipo di runbook grafico.A Code activity runs one or more lines of PowerShell or PowerShell Workflow code depending on the graphical runbook type. È possibile usare questa attività per il codice personalizzato o per funzionalità difficili da ottenere con altre attività.You can use this activity for custom code or for functionality that is difficult to achieve with other activities.

Controllo ConfigurationConfiguration control

Il Controllo della configurazione è il luogo in cui è possibile fornire i dettagli per un oggetto selezionato nel canvas.The Configuration control is where you provide details for an object selected on the canvas. Le proprietà disponibili in questo controllo dipendono dal tipo di oggetto selezionato.The properties available in this control will depend on the type of object selected. Quando si seleziona un'opzione nel controllo Configuration, verranno visualizzati pannelli aggiuntivi per specificare altre informazioni.When you select an option in the Configuration control, it will open additional blades in order to provide additional information.

Controllo TestTest control

Il controllo Test non viene visualizzato al primo avvio dell'editor grafico.The Test control is not displayed when the graphical editor is first started. Viene aperto quando si testa un Runbook graficoin modo interattivo.It is opened when you interactively test a graphical runbook.

Procedure relative a Runbook graficiGraphical runbook procedures

Esportazione e importazione di un runbook con interfaccia graficaExporting and importing a graphical runbook

È possibile esportare solo la versione pubblicata di un runbook con interfaccia grafica.You can only export the published version of a graphical runbook. Se il runbook non è ancora stato pubblicato, il pulsante esportazione pubblicato è disabilitato.If the runbook has not yet been published, then the Export published button will be disabled. Quando si fa clic sul pulsante Esportazione pubblicata , il runbook viene scaricato nel computer locale.When you click the Export published button, the runbook is downloaded to your local computer. Il nome del file corrisponde al nome del runbook con un estensione graphrunbook .The name of the file matches the name of the runbook with a graphrunbook extension.

esportazione pubblicato

È possibile importare un file di runbook grafico o di runbook grafico del flusso di lavoro PowerShell selezionando l'opzione Importa quando si aggiunge un runbook.You can import a Graphical or Graphical PowerShell Workflow runbook file by selecting the Import option when adding a runbook. Quando si seleziona il file da importare, è possibile mantenere lo stesso Nome o fornirne uno nuovo.When you select the file to import, you can keep the same Name or provide a new one. Il campo Tipo di runbook visualizza il tipo di runbook dopo aver valutato il file selezionato e, se si tenta di selezionare un tipo diverso che non risulta corretto, viene visualizzato un messaggio che informa dell'esistenza di potenziali conflitti che potrebbero causare errori di sintassi durante la conversione.The Runbook Type field will display the type of runbook after it assesses the file selected and if you attempt to select a different type that is not correct, a message will be presented noting there are potential conflicts and during conversion, there could be syntax errors.

Importare runbook

Test di un Runbook graficoTesting a graphical runbook

È possibile testare la versione bozza di un Runbook nel portale di Azure lasciando la versione pubblicata del Runbook invariata oppure testare un nuovo Runbook prima che venga pubblicato.You can test the Draft version of a runbook in the Azure portal while leaving the published version of the runbook unchanged, or you can test a new runbook before it has been published. In questo modo è possibile verificare che il Runbook funzioni correttamente prima di sostituire la versione pubblicata.This allows you to verify that the runbook is working correctly before replacing the published version. Quando si testa un Runbook, viene eseguito il Runbook in versione bozza e le azioni eseguite vengono completate.When you test a runbook, the Draft runbook is executed and any actions that it performs are completed. Non viene creata alcuna cronologia dei processi, ma l'output viene visualizzato nel riquadro di output del test.No job history is created, but output is displayed in the Test Output Pane.

Per aprire il controllo Test per un Runbook, aprire il Runbook per la modifica e quindi fare clic sul pulsante Test pane .Open the Test control for a runbook by opening the runbook for edit and then click on the Test pane button.

Pulsante Test pane

Il controllo Test richiederà di specificare eventuali parametri di input e sarà possibile avviare il Runbook facendo clic sul pulsante Start .The Test control will prompt for any input parameters, and you can start the runbook by clicking on the Start button.

Pulsanti del controllo Test

Pubblicazione di un Runbook graficoPublishing a graphical runbook

Ogni Runbook in Automazione di Azure include una versione bozza e una versione pubblicata.Each runbook in Azure Automation has a Draft and a Published version. È possibile eseguire solo la versione pubblicata, mentre è possibile modificare solo la versione bozza.Only the Published version is available to be run, and only the Draft version can be edited. La versione pubblicata non è interessata dalle modifiche apportate alla versione bozza.The Published version is unaffected by any changes to the Draft version. Quando la versione bozza è pronta per essere disponibile, è possibile pubblicarla sovrascrivendo così la versione pubblicata.When the Draft version is ready to be available, then you publish it which overwrites the Published version with the Draft version.

È possibile pubblicare un Runbook grafico aprendolo per la modifica e quindi facendo clic sul pulsante Publish .You can publish a graphical runbook by opening the runbook for editing and then clicking on the Publish button.

Pulsante Publish

Un Runbook non ancora pubblicato è con stato New.When a runbook has not yet been published, it has a status of New. Quando viene pubblicato, lo stato cambia in Published.When it is published, it has a status of Published. Se si modifica il Runbook dopo la pubblicazione e le versioni bozza e pubblicata sono diverse, il Runbook risulta con stato In edit.If you edit the runbook after it has been published, and the Draft and Published versions are different, the runbook has a status of In edit.

Stati del Runbook

È anche possibile ripristinare la versione pubblicata di un Runbook.You also have the option to revert to the Published version of a runbook. In questo modo verranno rimosse le modifiche apportate dopo l'ultima pubblicazione e la versione bozza del Runbook verrà sostituita con la versione pubblicata.This throws away any changes made since the runbook was last published and replaces the Draft version of the runbook with the Published version.

Pulsante Revert to published

attivitàActivities

Le attività sono i blocchi predefiniti di un Runbook.Activities are the building blocks of a runbook. Un'attività può essere un cmdlet di PowerShell, un Runbook figlio o un'attività flusso di lavoro.An activity can be a PowerShell cmdlet, a child runbook, or a workflow activity. Per aggiungere un'attività al Runbook, fare clic con il pulsante destro del mouse sul controllo Library e scegliere Add to canvas.You add an activity to the runbook by right clicking it in the Library control and selecting Add to canvas. È quindi possibile fare clic e trascinare l'attività per posizionarla in un punto qualsiasi nel canvas desiderato.You can then click and drag the activity to place it anywhere on the canvas that you like. La posizione dell'attività sul canvas non influirà in alcun modo sul funzionamento del Runbook.The location of the of the activity on the canvas does not effect the operation of the runbook in any way. È possibile modificare il layout del Runbook nel modo più adatto per consentire di visualizzarne il funzionamento.You can layout your runbook however you find it most suitable to visualize its operation.

Add to canvas

Selezionare l'attività nel canvas per configurare le relative proprietà e i relativi parametri nel pannello Configuration.Select the activity on the canvas to configure its properties and parameters in the Configuration blade. È possibile modificare il campo Label dell'attività specificando un nome descrittivo per l'utente.You can change the Label of the activity to something that is descriptive to you. Il cmdlet originale è ancora in esecuzione, si sta semplicemente modificando il nome visualizzato che verrà usato nell'editor grafico.The original cmdlet is still being run, you are simply changing its display name that will be used in the graphical editor. L'etichetta deve essere univoca all'interno del Runbook.The label must be unique within the runbook.

Set di parametriParameter sets

Un set di parametri definisce i parametri obbligatori e facoltativi che accetteranno i valori per un cmdlet specifico.A parameter set defines the mandatory and optional parameters that will accept values for a particular cmdlet. Tutti i cmdlet dispongono di almeno un set di parametri, altri dispongono di più set di parametri.All cmdlets have at least one parameter set, and some have multiple. Se un cmdlet dispone di più set di parametri, sarà necessario selezionare quello da usare prima di configurare i parametri.If a cmdlet has multiple parameter sets, then you must select which one you will use before you can configure parameters. I parametri che è possibile configurare dipendono da set di parametri scelto.The parameters that you can configure will depend on the parameter set that you choose. È possibile modificare il set di parametri usato da un'attività selezionando Parameter Set e quindi un altro set.You can change the parameter set used by an activity by selecting Parameter Set and selecting another set. In questo caso, i valori dei parametri configurati vengono persi.In this case, any parameter values that you configured are lost.

Nell'esempio seguente il cmdlet Get-AzureRmVM dispone di tre set di parametri.In the following example, the Get-AzureRmVM cmdlet has three parameter sets. Non è possibile configurare i valori dei parametri fino a quando non si seleziona uno dei set di parametri.You cannot configure parameter values until you select one of the parameter sets. Il set di parametri ListVirtualMachineInResourceGroupParamSet restituisce tutte le macchine virtuali in un gruppo di risorse e dispone di un solo parametro facoltativo.The ListVirtualMachineInResourceGroupParamSet parameter set is for returning all virtual machines in a resource group and has a single optional parameter. Il set GetVirtualMachineInResourceGroupParamSet consente di specificare la macchina virtuale da restituire e dispone di due parametri obbligatori e di un parametro facoltativo.The GetVirtualMachineInResourceGroupParamSet is for specifying the virtual machine you want to return and has two mandatory and one optional parameter.

Parameter Set

Valori dei parametriParameter values

Quando si specifica un valore per un parametro, è necessario selezionare un'origine dati per determinare come verrà specificato il valore.When you specify a value for a parameter, you select a data source to determine how the value will be specified. Le origini dati disponibili per un determinato parametro dipenderanno dai valori validi per il parametro.The data sources that are available for a particular parameter will depend on the valid values for that parameter. Null ad esempio non sarà disponibile come opzione di un parametro che non consente valori Null.For example, Null will not be an available option for a parameter that does not allow null values.

Origine datiData Source DescrizioneDescription
Constant ValueConstant Value Digitare un valore per il parametro.Type in a value for the parameter. Disponibile solo per i tipi di dati seguenti: Int32, Int64, String, Boolean, DateTime, Switch.This is only available for the following data types: Int32,Int64,String,Boolean,DateTime,Switch.
Activity OutputActivity Output Output di un'attività che precede l'attività corrente nel flusso di lavoro.Output from an activity that precedes the current activity in the workflow. Verranno elencate tutte le attività valide.All valid activities will be listed. Selezionare l'attività per usare il relativo output per il valore del parametro.Select just the activity to use its output for the parameter value. Se l'attività restituisce un oggetto con più proprietà, è possibile digitare il nome della proprietà dopo aver selezionato l'attività.If the activity outputs an object with multiple properties, then you can type in the name of the property after selecting the activity.
Input di runbookRunbook Input Selezionare un parametro input di Runbook come input per il parametro dell'attività.Select a runbook input parameter as input to the activity parameter.
Asset della variabileVariable Asset Selezionare una variabile di Automazione come input.Select an Automation Variable as input.
Asset di credenzialiCredential Asset Selezionare una credenziale di Automazione come input.Select an Automation Credential as input.
Asset del certificatoCertificate Asset Selezionare un certificato di Automazione come input.Select an Automation Certificate as input.
Asset di connessioneConnection Asset Selezionare una connessione di Automazione come input.Select an Automation Connection as input.
PowerShell ExpressionPowerShell Expression Specificare un' espressione di PowerShellsemplice.Specify simple PowerShell expression. L'espressione verrà valutata prima dell'attività e il risultato verrà usato per il valore del parametro.The expression will be evaluated before the activity and the result used for the parameter value. È possibile usare variabili per fare riferimento all'output di un'attività o un parametro di input di Runbook.You can use variables to refer to the output of an activity or a runbook input parameter.
Non configuratoNot configured Cancella qualsiasi valore precedentemente configurato.Clears any value that was previously configured.

Parametri aggiuntivi facoltativiOptional additional parameters

Per tutti i cmdlet è possibile specificare parametri aggiuntivi.All cmdlets will have the option to provide additional parameters. Si tratta di parametri comuni di PowerShell o di altri parametri personalizzati.These are PowerShell common parameters or other custom parameters. Viene visualizzata una casella di testo in cui è possibile specificare parametri usando la sintassi di PowerShell.You are presented with a text box where you can provide parameters using PowerShell syntax. Per usare ad esempio il parametro comune Verbose, specificare "-Verbose: $True".For example, to use the Verbose common parameter, you would specify "-Verbose:$True".

Ripetere l'attivitàRetry activity

Comportamento in caso di nuovo tentativo consente di eseguire un'attività più volte e come ciclo, finché non viene soddisfatta una determinata condizione.Retry Behavior allows an activity to be run multiple times until a particular condition is met, much like a loop. È possibile usare questa funzionalità per le attività da eseguire più volte, soggette a errori e che potrebbero richiedere più di un tentativo per riuscire o per testare le informazioni di output dell'attività al fine di controllarne la validità dei dati.You can use this feature for activities that should run multiple times, are error prone and may need more than one attempt for success, or test the output information of the activity for valid data.

Quando si abilita la ripetizione dei tentativi per un'attività, è possibile impostare un ritardo e una condizione.When you enable retry for an activity, you can set a delay and a condition. Il ritardo è il tempo, espresso in secondi o minuti, che il runbook attenderà prima di eseguire nuovamente l'attività.The delay is the time (measured in seconds or minutes) that the runbook will wait before it runs the activity again. Se non viene specificato un ritardo, l'attività verrà eseguita immediatamente dopo il completamento.If no delay is specified, then the activity will run again immediately after it completes.

Ritardo di ripetizione dei tentativi di attività

La condizione di ripetizione dei tentativi è un'espressione di PowerShell che viene valutata dopo ogni esecuzione dell'attività.The retry condition is a PowerShell expression that is evaluated after each time the activity runs. Se l'espressione restituisce True, l'attività viene eseguita di nuovo.If the expression resolves to True, then the activity runs again. Se l'espressione restituisce False, l'attività non viene eseguita di nuovo e il runbook passa all'attività successiva.If the expression resolves to False then the activity does not run again, and the runbook moves on to the next activity.

Ritardo di ripetizione dei tentativi di attività

La condizione di ripetizione dei tentativi può usare una variabile denominata $RetryData che fornisce l'accesso alle informazioni sulla ripetizione dei tentativi dell'attività.The retry condition can use a variable called $RetryData that provides access to information about the activity retries. Questa variabile include le proprietà elencate nella tabella seguente.This variable has the properties in the following table.

ProprietàProperty DescrizioneDescription
NumberOfAttemptsNumberOfAttempts Numero di volte in cui l'attività è stata eseguita.Number of times that the activity has been run.
OutputOutput Output dell'ultima esecuzione dell'attività.Output from the last run of the activity.
TotalDurationTotalDuration Tempo trascorso dal primo avvio dell'attività.Timed elapsed since the activity was started the first time.
StartedAtStartedAt Ora in formato UTC del primo avvio dell'attività.Time in UTC format the activity was first started.

Di seguito sono riportati alcuni esempi di condizioni per la ripetizione dei tentativi dell'attività.Following are examples of activity retry conditions.

# Run the activity exactly 10 times.
$RetryData.NumberOfAttempts -ge 10 

# Run the activity repeatedly until it produces any output.
$RetryData.Output.Count -ge 1 

# Run the activity repeatedly until 2 minutes has elapsed. 
$RetryData.TotalDuration.TotalMinutes -ge 2

Dopo aver configurato la condizione di ripetizione dei tentativi per un'attività, l'attività include due segnali visivi come promemoria per l'utente.After you configure a retry condition for an activity, the activity includes two visual cues to remind you. Uno viene visualizzato all'interno dell'attività e l'altro durante il controllo della configurazione dell'attività.One is presented in the activity and the other is when you review the configuration of the activity.

Segnali visivi di ripetizione dei tentativi di attività

Controllo Workflow ScriptWorkflow Script control

Un Controllo codice è un'attività speciale che accetta lo script PowerShell o del flusso di lavoro PowerShell a seconda del tipo di runbook grafico che si sta creando per offrire funzionalità che altrimenti potrebbero non essere disponibili.A Code control is a special activity that accepts PowerShell or PowerShell Workflow script depending on the type of graphical runbook being authored in order to provide functionality that may otherwise not be available. Non può accettare parametri, ma può usare le variabili per parametri di output di attività e di input di Runbook.It cannot accept parameters, but it can use variables for activity output and runbook input parameters. Gli output dell'attività vengono aggiunti al bus di dati, a meno che non dispongano di alcun collegamento in uscita, nel qual caso vengono aggiunti all'output del Runbook.Any output of the activity is added to the databus unless it has no outgoing link in which case it is added to the output of the runbook.

Il codice seguente ad esempio esegue calcoli di data usando una variabile di input di Runbook denominata $NumberOfDays.For example the following code performs date calculations using a runbook input variable called $NumberOfDays. Invia quindi una data/ora calcolata come output che verrà usato dalle attività successive nel Runbook.It then sends a calculated date time as output to be used by subsequent activities in the runbook.

$DateTimeNow = (Get-Date).ToUniversalTime()
$DateTimeStart = ($DateTimeNow).AddDays(-$NumberOfDays)}
$DateTimeStart

Un collegamento in un Runbook grafico connette due attività.A link in a graphical runbook connects two activities. Viene visualizzato nel canvas come una freccia che punta dall'attività di origine verso l'attività di destinazione.It is displayed on the canvas as an arrow pointing from the source activity to the destination activity. Le attività vengono eseguite nella direzione della freccia, con l'attività di destinazione che inizia dopo il completamento dell'attività di origine.The activities run in the direction of the arrow with the destination activity starting after the source activity completes.

Creare un collegamento tra due attività selezionando l'attività di origine e facendo clic sul cerchio nella parte inferiore della forma.Create a link between two activities by selecting the source activity and clicking the circle at the bottom of the shape. Trascinare la freccia sull'attività di destinazione e rilasciare.Drag the arrow to the destination activity and release.

Creare un collegamento

Selezionare il collegamento per configurare le relative proprietà nel pannello Configuration,Select the link to configure its properties in the Configuration blade. incluso il tipo di collegamento, che viene descritto nella tabella seguente.This will include the link type which is described in the following table.

Tipo di collegamentoLink Type DescrizioneDescription
PipelinePipeline L'attività di destinazione viene eseguita una volta per ogni oggetto restituito dall'attività di origine.The destination activity is run once for each object output from the source activity. L'attività di destinazione non viene eseguita se l'attività di origine non genera alcun output.The destination activity does not run if the source activity results in no output. L'output dell'attività di origine è disponibile come oggetto.Output from the source activity is available as an object.
SequenzaSequence L'attività di destinazione viene eseguita una sola volta.The destination activity runs only once. Riceve una matrice di oggetti dall'attività di origine.It receives an array of objects from the source activity. L'output dell'attività di origine è disponibile come matrice di oggetti.Output from the source activity is available as an array of objects.

Attività di inizioStarting activity

Un Runbook grafico inizia con le attività che non dispongono di un collegamento in ingresso.A graphical runbook will start with any activities that do not have an incoming link. Si tratta in genere di una sola attività, che svolge la funzione di attività iniziale per il Runbook.This will often be only one activity which would act as the starting activity for the runbook. Se esistono più attività che non dispongono di un collegamento in ingresso, il Runbook si avvierà eseguendole in parallelo.If multiple activities do not have an incoming link, then the runbook will start by running them in parallel. Seguirà quindi i collegamenti per eseguire altre attività man mano che vengono completate.It will then follow the links to run other activities as each completes.

CondizioniConditions

Se si specifica una condizione su un collegamento, l'attività di destinazione verrà eseguita solo se la condizione restituisce true.When you specify a condition on a link, the destination activity is only run if the condition resolves to true. Verrà usata in genere una variabile $ActivityOutput in una condizione per recuperare l'output dell'attività di origine.You will typically use an $ActivityOutput variable in a condition to retrieve the output from the source activity.

Per un collegamento di tipo pipeline, si specifica una condizione per un singolo oggetto e la condizione viene valutata per ogni output dell'oggetto da parte dell'attività di origine.For a pipeline link, you specify a condition for a single object, and the condition is evaluated for each object output by the source activity. L'attività di destinazione viene quindi eseguita per ogni oggetto che soddisfa la condizione.The destination activity is then run for each object that satisfies the condition. Con un'attività di origine di Get-AzureRmVm ad esempio è possibile usare la sintassi seguente in modo che un collegamento di tipo pipeline condizionale recuperi solo le macchine virtuali nel gruppo di risorse denominato Group1.For example, with a source activity of Get-AzureRmVm, the following syntax could be used for a conditional pipeline link to retrieve only virtual machines in the resource group named Group1.

$ActivityOutput['Get Azure VMs'].Name -match "Group1"

Per un collegamento di tipo sequenza, la condizione viene valutata solo dopo la restituzione di una singola matrice contenente tutti gli oggetti restituiti dall'attività di origine.For a sequence link, the condition is only evaluated once since a single array is returned containing all objects output from the source activity. Per questo motivo, un collegamento di tipo sequenza non può essere usato per il filtro come un collegamento di tipo pipeline, ma determina semplicemente se l'attività successiva viene o non viene eseguita.Because of this, a sequence link cannot be used for filtering like a pipeline link but will simply determine whether or not the next activity is run. Si consideri ad esempio il seguente set di attività nel runbook Start VM.Take for example the following set of activities in our Start VM runbook.
Collegamento condizionale con sequenzeConditional Link with Sequences
Esistono tre collegamenti di tipo sequenza diversi che verificano i valori specificati su due parametri di input runbook che rappresentano il nome della macchina virtuale e il nome del gruppo di risorse per determinare l'azione appropriata da eseguire: avviare una singola macchina virtuale, avviare tutte le macchine virtuali nel gruppo di risorse o avviare tutte le macchine virtuali in una sottoscrizione.There are three different sequence links that are verifying values were provided to two runbook input parameters representing VM name and Resource Group name in order to determine which is the appropriate action to take - start a single VM, start all VMs in the resouce group, or all VMs in a subscription. Per il collegamento di tipo sequenza tra Connect to Azure e Get single VM, questa è la logica della condizione:For the sequence link between Connect to Azure and Get single VM, here is the condition logic:

<# 
Both VMName and ResourceGroupName runbook input parameters have values 
#>
(
(($VMName -ne $null) -and ($VMName.Length -gt 0))
) -and (
(($ResourceGroupName -ne $null) -and ($ResourceGroupName.Length -gt 0))
)

Quando si usa un collegamento condizionale, i dati disponibili dall'attività di origine per altre attività nel ramo vengono filtrati dalla condizione.When you use a conditional link, the data available from the source activity to other activities in that branch will be filtered by the condition. Se un'attività è all'origine di più collegamenti, i dati disponibili per le attività in ogni ramo variano in base alla condizione nel collegamento connesso a tale ramo.If an activity is the source to multiple links, then the data available to activities in each branch will depend on the condition in the link connecting to that branch.

L'attività Start-AzureRmVm del runbook seguente ad esempio recupera tutte le macchine virtuali.For example, the Start-AzureRmVm activity in the runbook below starts all virtual machines. Dispone di due collegamenti condizionali.It has two conditional links. Il primo collegamento condizionale usa l'espressione $ActivityOutput['Start-AzureRmVM'].IsSuccessStatusCode -eq $true per eseguire la filtrazione se l'attività Start-AzureRmVm è stata completata correttamente.The first conditional link uses the expression $ActivityOutput['Start-AzureRmVM'].IsSuccessStatusCode -eq $true to filter if the Start-AzureRmVm activity completed successfully. Il secondo collegamento usa l'espressione $ActivityOutput['Start-AzureRmVM'].IsSuccessStatusCode -ne $true per eseguire la filtrazione se l'attività Start-AzureRmVm non è riuscita ad avviare la macchina virtuale.The second uses the expression $ActivityOutput['Start-AzureRmVM'].IsSuccessStatusCode -ne $true to filter if the Start-AzureRmVm activity failed to start the virtual machine.

Esempio di collegamento condizionale

Qualsiasi attività che segue il primo collegamento e usa l'output dell'attività da Get-AzureVM recupera solo le macchine virtuali che erano avviate al momento dell'esecuzione di Get-AzureVM.Any activity that follows the first link and uses the activity output from Get-AzureVM will only get the virtual machines that were started at the time that Get-AzureVM was run. Un'attività che segue il secondo collegamento recupera solo le macchine virtuali che erano arrestate al momento dell'esecuzione Get-AzureVM.Any activity that follows the second link will only get the the virtual machines that were stopped at the time that Get-AzureVM was run. Le attività che seguono il terzo collegamento recuperano tutte le macchine virtuali, indipendentemente dallo stato di esecuzione.Any activity following the third link will get all virtual machines regardless of their running state.

GiunzioniJunctions

Una giunzione è un'attività speciale che attende il completamento di tutti i rami in ingresso.A junction is a special activity that will wait until all incoming branches have completed. In questo modo è possibile eseguire più attività in parallelo e assicurarsi che siano state tutte completate prima di procedere.This allows you to run multiple activities in parallel and ensure that all have completed before moving on.

Mentre una giunzione può disporre di un numero illimitato di collegamenti in entrata, solo uno di essi può essere una pipeline.While a junction can have an unlimited number of incoming links, not more than one of those links can be a pipeline. Il numero di collegamenti di tipo sequenza in ingresso non prevede vincoli.The number of incoming sequence links is not constrained. Sarà possibile creare la giunzione con più collegamenti di tipo pipeline in ingresso e salvare il Runbook, ma l'esecuzione restituirà esito negativo.You will be allowed to create the junction with multiple incoming pipeline links and save the runbook, but it will fail when it is run.

L'esempio seguente fa parte di un Runbook che avvia un set di macchine virtuali e scarica contemporaneamente patch da applicare a tali macchine.The example below is part of a runbook that starts a set of virtual machines while simultaneously downloading patches to be applied to those machines. Viene usata una giunzione per verificare che entrambi i processi vengano completati prima che il Runbook continui.A junction is used to ensure that both processes are completed before the runbook continues.

giunzione

CicliCycles

Un ciclo si verifica quando un'attività di destinazione si collega alla relativa attività di origine o a un'altra attività che alla fine si collega all'origine.A cycle is when a destination activity links back to its source activity or to another activity that eventually links back to its source. I cicli non sono attualmente consentiti nella creazione grafica.Cycles are currently not allowed in graphical authoring. Se un Runbook dispone di un ciclo, verrà salvato correttamente, ma riceverà un errore durante l'esecuzione.If your runbook has a cycle, it will save properly but will receive an error when it runs.

Ciclo

Condivisione di dati tra le attivitàSharing data between activities

Tutti i dati restituiti da un'attività con un collegamento in uscita vengono scritti nel bus di dati del Runbook.Any data that is output by an activity with an outgoing link is written to the databus for the runbook. Le attività nel Runbook possono usare i dati del bus di dati per popolare valori di parametri o includere codice di script.Any activity in the runbook can use data on the databus to populate parameter values or include in script code. Un'attività può accedere all'output di qualsiasi attività precedente nel flusso di lavoro.An activity can access the output of any previous activity in the workflow.

I dati vengono scritti nel bus di dati secondo il tipo di collegamento dell'attività.How the data is written to the databus depends on the type of link on the activity. Per una pipeline, i dati vengono restituiti come oggetti multipli.For a pipeline, the data is output as multiples objects. Per una sequenza , i dati vengono restituiti come matrice.For a sequence link, the data is output as an array. Se è presente un solo valore, questo verrà restituito come matrice a elemento singolo.If there is only one value, it will be output as a single element array.

È possibile accedere ai dati nel bus di dati procedendo in uno dei due modi seguenti.You can access data on the databus using one of two methods. Il primo prevede l'uso di un'origine dati Activity Output per popolare un parametro di un'altra attività.First is using an Activity Output data source to populate a parameter of another activity. Se l'output è un oggetto, è possibile specificare una singola proprietà.If the output is an object, you can specify a single property.

Activity Output

È anche possibile recuperare l'output di un'attività in un'origine dati Espressione PowerShell o da un'attività Script del flusso di lavoro con una variabile ActivityOutput.You can also retrieve the output of an activity in a PowerShell Expression data source or from a Workflow Script activity with an ActivityOutput variable. Se l'output è un oggetto, è possibile specificare una singola proprietà.If the output is an object, you can specify a single property. Le variabili ActivityOutput usano la sintassi seguente.ActivityOutput variables use the following syntax.

$ActivityOutput['Activity Label']
$ActivityOutput['Activity Label'].PropertyName 

CheckpointCheckpoints

È possibile impostare Checkpoint in un runbook grafico del flusso di lavoro PowerShell selezionando Checkpoint per runbook in qualsiasi attività.You can set checkpoints in a Graphical PowerShell Workflow runbook by selecting Checkpoint runbook on any activity. In questo modo viene impostato un checkpoint dopo l'esecuzione dell'attività.This causes a checkpoint to be set after the activity runs.

Checkpoint

I checkpoint sono abilitati solo nei runbook grafici del flusso di lavoro PowerShell e non sono disponibili nei runbook grafici.Checkpoints are only enabled in Graphical PowerShell Workflow runbooks, it is not available in Graphical runbooks. Se il runbook usa i cmdlet di Azure, è consigliabile eseguire qualsiasi attività con checkpoint con un Add-AzureRMAccount, nel caso in cui il runbook venga sospeso e riavviato da questo checkpoint in un ruolo di lavoro diverso.If the runbook uses Azure cmdlets, you should follow any checkpointed activity with an Add-AzureRMAccount in case the runbook is suspended and restarts from this checkpoint on a different worker.

Autenticazione per le risorse di AzureAuthenticating to Azure resources

La maggior parte dei runbook di Automazione di Azure che gestisce risorse di Azure richiede l'autenticazione ad Azure.Runbooks in Azure Automation that manage Azure resources will require authentication to Azure. La nuova funzionalità account RunAs, anche detta entità servizio, costituisce il metodo predefinito per accedere alle risorse di Azure Resource Manager nella sottoscrizione con i runbook di Automazione.The Run As account (also referred to as a service principal) is the default method to access Azure Resource Manager resources in your subscription with Automation runbooks. È possibile aggiungere questa funzionalità a un runbook grafico tramite l'aggiunta dell'asset di connessione AzureRunAsConnection, ovvero usando il cmdlet Get-AutomationConnection di PowerShell e il cmdlet Add-AzureRmAccount nel canvas.You can add this functionality to a graphical runbook by adding the AzureRunAsConnection Connection asset, which is using the PowerShell Get-AutomationConnection cmdlet, and Add-AzureRmAccount cmdlet to the canvas. Questo è illustrato nell'esempio seguente.This is illustrated in the following example.
Attività di autenticazione RunAsRun As Authentication Activities
L'attività Get Run As Connection, ad esempio Get-AutomationConnection, viene configurata con un'origine dati a valore costante denominata AzureRunAsConnection.The Get Run As Connection activity (i.e. Get-AutomationConnection), is configured with a constant value data source named AzureRunAsConnection.
Configurazione della connessione RunAsRun As Connection Configuration
L'attività successiva, Add-AzureRmAccount, aggiunge l'account RunAs autenticato per l'uso con il runbook.The next activity, Add-AzureRmAccount, adds the authenticated Run As account for use in the runbook.
Set di parametri Add-AzureRmAccount Add-AzureRmAccount Parameter Set
Per i parametri APPLICATIONID, CERTIFICATETHUMBPRINT e TENANTID è necessario specificare il nome della proprietà per il percorso del campo perché l'attività restituisca un oggetto con più proprietà.For the parameters APPLICATIONID, CERTIFICATETHUMBPRINT, and TENANTID you will need to specify the name of the property for the Field path because the activity outputs an object with multiple properties. In caso contrario, quando si esegue il runbook, il tentativo di autenticazione avrà esito negativo.Otherwise when you execute the runbook, it will fail attempting to authenticate. Questi sono i requisiti minimi necessari per l'autenticazione del runbook con l'account RunAs.This is what you need at a minimum to authenticate your runbook with the Run As account.

Per mantenere la compatibilità con le versioni precedenti per i sottoscrittori che hanno creato un account di Automazione tramite un account utente di Azure AD per la gestione della distribuzione classica di Azure o per le risorse di Azure Resource Manager, il metodo per l'autenticazione è il cmdlet Add-AzureAccount con un asset credenziali che rappresenta un utente di Active Directory con accesso all'account Azure.To maintain backwards compatibility for subscribers who have created an Automation account using an Azure AD User account to manage Azure classic deployment or for Azure Resource Manager resources, the method to authenticate is the Add-AzureAccount cmdlet with a credential asset that represents an Active Directory user with access to the Azure account.

È possibile aggiungere questa funzionalità a un Runbook grafico mediante l'aggiunta di un asset credenziali nel canvas seguito da un'attività Add-AzureAccount.You can add this functionality to a graphical runbook by adding a credential asset to the canvas followed by an Add-AzureAccount activity. Add-AzureAccount usa l'attività credenziali come input.Add-AzureAccount uses the credential activity for its input. Questo è illustrato nell'esempio seguente.This is illustrated in the following example.

Attività di autenticazione

È necessario eseguire l'autenticazione all'inizio del Runbook e dopo ogni checkpoint.You have to authenticate at the start of the runbook and after each checkpoint. Questo significa aggiungere un'attività Add-AzureAccount dopo qualsiasi attività Checkpoint-Workflow.This means adding an addition Add-AzureAccount activity after any Checkpoint-Workflow activity. Non è necessaria un'attività credenziali aggiuntiva poiché è possibile usare la stessa.You do not need an addition credential activity since you can use the same

Activity Output

Input e output di RunbookRunbook input and output

Input di runbookRunbook input

Un Runbook può richiedere l'input di un utente che avvia il Runbook tramite il portale di Azure o di un altro Runbook se quello corrente viene usato come Runbook figlio.A runbook may require input either from a user when they start the runbook through the Azure portal or from another runbook if the current one is used as a child. Se ad esempio si dispone di un Runbook che crea una macchina virtuale, potrebbe essere necessario specificare informazioni come il nome della macchina virtuale e altre proprietà ogni volta che si avvia il Runbook.For example, if you have a runbook that creates a virtual machine, you may need to provide information such as the name of the virtual machine and other properties each time you start the runbook.

È possibile accettare l'input per un Runbook definendo uno o più parametri di input.You accept input for a runbook by defining one or more input parameters. Specificare valori per questi parametri ogni volta che viene avviato il Runbook.You provide values for these parameters each time the runbook is started. Se si avvia un Runbook con il portale di Azure, verrà chiesto di specificare valori per ognuno dei parametri di input del Runbook.When you start a runbook with the Azure portal, it will prompt you to provide values for the each of the runbook's input parameters.

È possibile accedere ai parametri di input per un Runbook facendo clic sul pulsante Input and output sulla barra degli strumenti del Runbook.You can access input parameters for a runbook by clicking the Input and output button on the runbook toolbar.

Input e output di Runbook

Verrà aperto il controllo Input e output, in cui è possibile modificare un parametro di input esistente o crearne uno nuovo facendo clic su Aggiungi input.This opens the Input and Output control where you can edit an existing input parameter or create a new one by clicking Add input.

Add input

Ogni parametro di input è definito dalle proprietà descritte nella tabella seguente.Each input parameter is defined by the properties in the following table.

ProprietàProperty DescrizioneDescription
NomeName Nome univoco del parametro.The unique name of the parameter. Può contenere solo caratteri alfanumerici e non può contenere spazi.This can only contain alpha numeric characters and cannot contain a space.
DescrizioneDescription Descrizione facoltativa del parametro di input.An optional description for the input parameter.
TypeType Tipo di dati previsto per il valore del parametro.Data type expected for the parameter value. Il portale di Azure visualizzerà un controllo appropriato per il tipo di dati per ogni parametro quando viene richiesto l'input.The Azure portal will provide an appropriate control for the data type for each parameter when prompting for input.
ObbligatorioMandatory Specifica se è necessario specificare un valore per il parametro.Specifies whether a value must be provided for the parameter. Non è possibile avviare il Runbook se non si specifica un valore per ogni parametro obbligatorio che non dispone di un valore predefinito.The runbook cannot be started if you do not provide a value for each mandatory parameter that does not have a default value defined.
Default ValueDefault Value Specifica quale valore viene usato per il parametro se non ne viene specificato uno.Specifies what value is used for the parameter if one is not provided. Può essere Null o un valore specifico.This can either be Null or a specific value.

Output del RunbookRunbook output

I dati creati da un'attività che non dispone di un collegamento in uscita verranno aggiunti all' output del Runbook.Data created by any activity that does not have an outgoing link will be added to the output of the runbook. L'output viene salvato con il processo di Runbook ed è disponibile per un Runbook padre quando il Runbook viene usato come Runbook figlio.The output is saved with the runbook job and is available to a parent runbook when the runbook is used as a child.

Espressioni PowerShellPowerShell expressions

Uno dei vantaggi della creazione grafica è la possibilità di creare un runbook con una minima conoscenza di PowerShell.One of the advantages of graphical authoring is providing you with the ability to build a runbook with minimal knowledge of PowerShell. Attualmente, è necessario avere una discreta conoscenza di PowerShell per la compilazione di determinati valori dei parametri e per l'impostazione di condizioni di collegamento.Currently, you do need to know a bit of PowerShell though for populating certain parameter values and for setting link conditions. Questa sezione fornisce una rapida introduzione alle espressioni di PowerShell per quegli utenti che potrebbero non avere familiarità con esso.This section provides a quick introduction to PowerShell expressions for those users who may not be familiar with it. I dettagli completi di PowerShell sono disponibili all'indirizzo Scripting con Windows PowerShell.Full details of PowerShell are available at Scripting with Windows PowerShell.

Origine dati delle espressioni PowerShellPowerShell expression data source

È possibile utilizzare un'espressione di PowerShell come origine dati per popolare il valore di un parametro attività con i risultati di un codice PowerShell.You can use a PowerShell expression as a data source to populate the value of an activity parameter with the results of some PowerShell code. Potrebbe trattarsi di una singola riga di codice che esegue una funzione semplice o più righe che eseguono una logica complessa.This could be a single line of code that performs some simple function or multiple lines that perform some complex logic. L'output di un comando che non è assegnato a una variabile è l'output per il valore del parametro.Any output from a command that is not assigned to a variable is output to the parameter value.

Il comando seguente, ad esempio, avrebbe generato la data corrente.For example, the following command would output the current date.

Get-Date

I seguenti comandi compilano una stringa della data corrente e l’assegnano a una variabile.The following commands build a string from the current date and assign it to a variable. Il contenuto della variabile viene quindi inviato all'outputThe contents of the variable are then sent to the output

$string = "The current date is " + (Get-Date)
$string

I seguenti comandi valutano la data corrente e restituiscono una stringa che indica se il giorno corrente rappresenta un fine settimana o un giorno feriale.The following commands evaluate the current date and return a string indicating whether the current day is a weekend or weekday.

$date = Get-Date
if (($date.DayOfWeek = "Saturday") -or ($date.DayOfWeek = "Sunday")) { "Weekend" }
else { "Weekday" }

Activity OutputActivity output

Per utilizzare l'output da una precedente attività del runbook, utilizzare la variabile $ActivityOutput con la sintassi seguente.To use the output from a previous activity in the runbook, use the $ActivityOutput variable with the following syntax.

$ActivityOutput['Activity Label'].PropertyName

Ad esempio, si potrebbe avere un'attività con una proprietà che richiede il nome di una macchina virtuale e in questo caso è possibile utilizzare l'espressione seguente.For example, you may have an activity with a property that requires the name of a virtual machine in which case you could use the following expression.

$ActivityOutput['Get-AzureVm'].Name

Se la proprietà che richiede la macchina virtuale è un oggetto anziché una proprietà, sarebbe necessario restituire l'intero oggetto utilizzando la sintassi seguente.If the property that required the virtual machine object instead of just a property, then you would return the entire object using the following syntax.

$ActivityOutput['Get-AzureVm']

È inoltre possibile utilizzare l'output di un'attività in un'espressione più complessa, come quella illustrata di seguito che consente di concatenare testo al nome della macchina virtuale.You can also use the output of an activity in a more complex expression such as the following that concatenates text to the virtual machine name.

"The computer name is " + $ActivityOutput['Get-AzureVm'].Name

CondizioniConditions

Utilizzare operatori di confronto per confrontare i valori o determinare se un valore corrisponde a un modello specificato.Use comparison operators to compare values or determine if a value matches a specified pattern. Un confronto restituisce un valore $true o $false.A comparison returns a value of either $true or $false.

Ad esempio, la condizione seguente determina se la macchina virtuale da un'attività denominata Get-AzureVM si trova attualmente nello stato arrestato.For example, the following condition determines whether the virtual machine from an activity named Get-AzureVM is currently stopped.

$ActivityOutput["Get-AzureVM"].PowerState –eq "Stopped"

La seguente condizione verifica se la stessa macchina virtuale è in uno stato diverso da arrestato.The following condition checks whether the same virtual machine is in any state other than stopped.

$ActivityOutput["Get-AzureVM"].PowerState –ne "Stopped"

È possibile aggiungere più condizioni usando un operatore logico ad esempio -and o -or.You can join multiple conditions using a logical operator such as -and or -or. Ad esempio, la seguente condizione verifica se la stessa macchina virtuale dell'esempio precedente presenta lo stato arrestato o arresto in corso.For example, the following condition checks whether the same virtual machine in the previous example is in a state of stopped or stopping.

($ActivityOutput["Get-AzureVM"].PowerState –eq "Stopped") -or ($ActivityOutput["Get-AzureVM"].PowerState –eq "Stopping") 

Tabelle hashHashtables

Tabelle hash sono coppie nome/valore utili per la restituzione di un set di valori.Hashtables are name/value pairs that are useful for returning a set of values. Le proprietà per determinate attività potrebbero prevedere una tabella hash anziché un valore semplice.Properties for certain activities may expect a hashtable instead of a simple value. È inoltre possibile visualizzare come utilizzare la tabella hash come dizionario.You may also see as hashtable referred to as a dictionary.

Creare una tabella hash con la sintassi seguente.You create a hashtable with the following syntax. Una tabella hash può contenere qualsiasi numero di voci, ma ciascuna è definita da un nome e valore.A hashtable can contain any number of entries but each is defined by a name and value.

@{ <name> = <value>; [<name> = <value> ] ...}

Ad esempio, l'espressione seguente crea una tabella hash da utilizzare nell'origine dati per un parametro di attività che prevede una tabella hash con i valori per una ricerca in internet.For example, the following expression creates a hashtable to be used in the data source for an activity parameter that expected a hashtable with values for an internet search.

$query = "Azure Automation"
$count = 10
$h = @{'q'=$query; 'lr'='lang_ja';  'count'=$Count}
$h

Nell'esempio seguente viene utilizzato l'output di un'attività denominata Get Twitter Connection per popolare una tabella hash.The following example uses output from an activity called Get Twitter Connection to populate a hashtable.

@{'ApiKey'=$ActivityOutput['Get Twitter Connection'].ConsumerAPIKey;
  'ApiSecret'=$ActivityOutput['Get Twitter Connection'].ConsumerAPISecret;
  'AccessToken'=$ActivityOutput['Get Twitter Connection'].AccessToken;
  'AccessTokenSecret'=$ActivityOutput['Get Twitter Connection'].AccessTokenSecret}

Passaggi successiviNext Steps