Esecuzione di runbook in Automazione di AzureRunbook execution in Azure Automation

L'automazione dei processi in Automazione di Azure consente di creare e gestire PowerShell, il flusso di lavoro di PowerShell e i runbook grafici.Process automation in Azure Automation allows you to create and manage PowerShell, PowerShell Workflow, and graphical runbooks. Per informazioni dettagliate, vedere Runbook di Automazione di Azure.For details, see Azure Automation runbooks.

Automazione esegue i runbook in base alla logica definita al loro interno.Automation executes your runbooks based on the logic defined inside them. Se un runbook viene interrotto, si riavvia dall'inizio.If a runbook is interrupted, it restarts at the beginning. Questo comportamento richiede la scrittura di runbook che supportano il riavvio in caso di problemi temporanei.This behavior requires you to write runbooks that support being restarted if transient issues occur.

L'avvio di un runbook in Automazione di Azure crea un processo, ovvero una singola istanza di esecuzione del runbook.Starting a runbook in Azure Automation creates a job, which is a single execution instance of the runbook. Ogni processo accede alle risorse di Azure eseguendo una connessione alla sottoscrizione di Azure.Each job accesses Azure resources by making a connection to your Azure subscription. Il processo può accedere solo alle risorse del data center dell'utente se tali risorse sono accessibili dal cloud pubblico.The job can only access resources in your datacenter if those resources are accessible from the public cloud.

Automazione di Azure assegna l'esecuzione di ogni processo durante l'esecuzione del runbook a un ruolo di lavoro.Azure Automation assigns a worker to run each job during runbook execution. I computer di lavoro sono condivisi da molti account Azure, mentre i processi di account di automazione diversi sono isolati l'uno dall'altro.While workers are shared by many Azure accounts, jobs from different Automation accounts are isolated from one another. Non è possibile controllare quali servizi del ruolo di lavoro vengono richiesti dal processo.You can't control which worker services your job requests.

Quando si visualizza l'elenco di runbook nel portale di Azure, è visibile lo stato di tutti i processi avviati per ogni runbook.When you view the list of runbooks in the Azure portal, it shows the status of each job that has been started for each runbook. Automazione di Azure conserva i log dei processi fino a 30 giorni.Azure Automation stores job logs for a maximum of 30 days.

Il diagramma seguente mostra il ciclo di vita di un processo del runbook per i runbook di PowerShell, i runbook del flusso di lavoro di PowerShell e i runbook grafici.The following diagram shows the lifecycle of a runbook job for PowerShell runbooks, PowerShell Workflow runbooks, and graphical runbooks.

Stati del processo - Flusso di lavoro PowerShell

Nota

Per informazioni su come visualizzare o eliminare dati personali, vedere Richieste del soggetto dei dati per il GDPR in Azure.For information about viewing or deleting personal data, see Azure Data Subject Requests for the GDPR. Per ulteriori informazioni su GDPR, vedere la sezione GDPR del Centro protezione Microsoft e la sezione GDPR del portale di attendibilità del servizio.For more information about GDPR, see the GDPR section of the Microsoft Trust Center and the GDPR section of the Service Trust portal.

Ambiente di esecuzione dei runbookRunbook execution environment

I runbook in Automazione di Azure possono essere eseguiti in una sandbox di Azure o in un ruolo di lavoro ibrido per runbook.Runbooks in Azure Automation can run on either an Azure sandbox or a Hybrid Runbook Worker.

Quando i runbook vengono progettati per l'autenticazione e l'esecuzione nelle risorse di Azure, vengono eseguiti in una sandbox di Azure, ovvero in un ambiente condiviso che può essere usato da più processi.When runbooks are designed to authenticate and run against resources in Azure, they run in an Azure sandbox, which is a shared environment that multiple jobs can use. I processi che usano la stessa sandbox sono vincolati dalle limitazioni di risorse della sandbox.Jobs using the same sandbox are bound by the resource limitations of the sandbox. L'ambiente sandbox di Azure non supporta le operazioni interattive.The Azure sandbox environment does not support interactive operations. Impedisce l'accesso a tutti i server COM out-of-process e non supporta l'esecuzione di chiamate WMI al provider Win32 nella Runbook.It prevents access to all out-of-process COM servers, and it does not support making WMI calls to the Win32 provider in your runbook. Questi scenari sono supportati solo eseguendo Runbook in un ruolo di lavoro ibrido per Runbook di Windows.These scenarios are only supported by running the runbook on a Windows Hybrid Runbook Worker.

È anche possibile usare un ruolo di lavoro ibrido per runbook per eseguire i runbook direttamente nel computer che ospita il ruolo e nelle risorse locali dell'ambiente.You can also use a Hybrid Runbook Worker to run runbooks directly on the computer that hosts the role and against local resources in the environment. Automazione di Azure archivia e gestisce i runbook, poi li distribuisce a uno o più computer assegnati.Azure Automation stores and manages runbooks and then delivers them to one or more assigned computers.

Nota

Per l'esecuzione in un ruolo di lavoro ibrido per runbook di Linux, gli script devono essere firmati e il ruolo di lavoro deve essere configurato di conseguenza.To run on a Linux Hybrid Runbook Worker, your scripts must be signed and the worker configured accordingly. In alternativa, è necessario disattivare la convalida della firma.Alternatively, signature validation must be turned off.

La tabella seguente elenca alcune attività di esecuzione del runbook insieme al relativo ambiente di esecuzione per ognuna di esse.The following table lists some runbook execution tasks with the recommended execution environment listed for each.

AttivitàTask RecommendationRecommendation NoteNotes
Integrazione con le risorse di AzureIntegrate with Azure resources Sandbox di AzureAzure Sandbox Se ospitata in Azure, l'autenticazione è più semplice.Hosted in Azure, authentication is simpler. Se si usa un ruolo di lavoro ibrido per runbook in una macchina virtuale di Azure, è possibile usare l'autenticazione del runbook con le identità gestite.If you're using a Hybrid Runbook Worker on an Azure VM, you can use runbook authentication with managed identities.
Ottenere prestazioni ottimali per gestire le risorse di AzureObtain optimal performance to manage Azure resources Sandbox di AzureAzure Sandbox Lo script viene eseguito nello stesso ambiente, che ha una latenza inferiore.Script is run in the same environment, which has less latency.
Ridurre al minimo i costi operativiMinimize operational costs Sandbox di AzureAzure Sandbox Non c'è alcun overhead di calcolo e non è necessaria una macchina virtuale.There is no compute overhead and no need for a VM.
Eseguire uno script con esecuzione prolungataExecute long-running script ruolo di lavoro ibrido per runbookHybrid Runbook Worker Le sandbox di Azure hanno limiti di risorse.Azure sandboxes have resource limits.
Interagire con i servizi localiInteract with local services ruolo di lavoro ibrido per runbookHybrid Runbook Worker Accedere direttamente al computer host oppure alle risorse in altri ambienti cloud o nell'ambiente locale.Directly access the host machine, or resources in other cloud environments or the on-premises environment.
Richiedere software ed eseguibili di terze partiRequire third-party software and executables ruolo di lavoro ibrido per runbookHybrid Runbook Worker L'utente gestisce il sistema operativo e può installare i software.You manage the operating system and can install software.
Monitorare un file o una cartella con un runbookMonitor a file or folder with a runbook ruolo di lavoro ibrido per runbookHybrid Runbook Worker Usare un'attività watcher in un ruolo di lavoro ibrido per runbook.Use a Watcher task on a Hybrid Runbook Worker.
Eseguire uno script con uso intensivo delle risorseRun a resource-intensive script ruolo di lavoro ibrido per runbookHybrid Runbook Worker Le sandbox di Azure hanno limiti di risorse.Azure sandboxes have resource limits.
Usare moduli con requisiti specificiUse modules with specific requirements ruolo di lavoro ibrido per runbookHybrid Runbook Worker Ad esempio:Some examples are:
WinSCP - dipendenza da winscp.exeWinSCP - dependency on winscp.exe
Amministrazione di IIS - dipendenza dall'abilitazione o dalla gestione di IISIIS administration - dependency on enabling or managing IIS
Installare un modulo con un programma di installazioneInstall a module with an installer ruolo di lavoro ibrido per runbookHybrid Runbook Worker I moduli per la sandbox devono supportare la copia.Modules for sandbox must support copying.
Usare runbook o moduli che richiedono una versione di .NET Framework diversa dalla 4.7.2Use runbooks or modules that require .NET Framework version different from 4.7.2 ruolo di lavoro ibrido per runbookHybrid Runbook Worker Le sandbox di Azure supportano .NET Framework 4.7.2 e l'aggiornamento a una versione diversa non è supportato.Azure sandboxes support .NET Framework 4.7.2, and upgrading to a different version is not supported.
Eseguire script che richiedono l'elevazione dei privilegiRun scripts that require elevation ruolo di lavoro ibrido per runbookHybrid Runbook Worker Le sandbox non consentono l'elevazione dei privilegi.Sandboxes don't allow elevation. Con un ruolo di lavoro ibrido per runbook è possibile disattivare il Controllo dell'account utente e usare Invoke-Command quando si esegue il comando che richiede l'elevazione dei privilegi.With a Hybrid Runbook Worker, you can turn off UAC and use Invoke-Command when running the command that requires elevation.
Eseguire script che richiedono l'accesso a Strumentazione gestione Windows (WMI)Run scripts that require access to Windows Management Instrumentation (WMI) ruolo di lavoro ibrido per runbookHybrid Runbook Worker I processi in esecuzione nelle sandbox del cloud non possono accedere al provider WMI.Jobs running in sandboxes in the cloud can't access WMI provider.

Archiviazione temporanea in una sandboxTemporary storage in a sandbox

Se è necessario creare file temporanei come parte della logica di Runbook, è possibile usare la cartella Temp (ovvero $env:TEMP ) in Azure sandbox per manuali operativi in esecuzione in Azure.If you need to create temporary files as part of your runbook logic, you can use the Temp folder (that is, $env:TEMP) in the Azure sandbox for runbooks running in Azure. L'unica limitazione è che non è possibile usare più di 1 GB di spazio su disco, ovvero la quota per ogni sandbox.The only limitation is you cannot use more than 1 GB of disk space, which is the quota for each sandbox. Quando si usano i flussi di lavoro di PowerShell, questo scenario può causare un problema perché i flussi di lavoro di PowerShell usano checkpoint e lo script può essere ritentato in una sandbox diversa.When working with PowerShell workflows, this scenario can cause a problem because PowerShell workflows use checkpoints and the script could be retried in a different sandbox.

Con la sandbox ibrida, è possibile usare in C:\temp base alla disponibilità dello spazio di archiviazione in un ruolo di lavoro ibrido per Runbook.With the hybrid sandbox, you can use C:\temp based on the availability of storage on a Hybrid Runbook Worker. Tuttavia, per le raccomandazioni sulle macchine virtuali di Azure non è consigliabile usare il disco temporaneo in Windows o Linux per i dati che devono essere salvati in modo permanente.However, per Azure VM recommendations, you should not use the temporary disk on Windows or Linux for data that needs to be persisted.

RisorseResources

I runbook devono includere la logica per gestire le risorse, ad esempio, le macchine virtuali, la rete e le risorse sulla rete.Your runbooks must include logic to deal with resources, for example, VMs, the network, and resources on the network. Le risorse sono associate a una sottoscrizione di Azure e i runbook richiedono credenziali appropriate per accedervi.Resources are tied to an Azure subscription, and runbooks require appropriate credentials to access any resource. Per un esempio di gestione delle risorse in un runbook, vedere Gestire risorse.For an example of handling resources in a runbook, see Handle resources.

SicurezzaSecurity

Automazione di Azure usa il Centro sicurezza di Azure per garantire la sicurezza delle risorse e rilevare i compromessi nei sistemi Linux.Azure Automation uses the Azure Security Center (ASC) to provide security for your resources and detect compromise in Linux systems. La sicurezza viene garantita tra i carichi di lavoro, indipendentemente dal fatto che le risorse si trovino in Azure o meno.Security is provided across your workloads, whether resources are in Azure or not. Vedere Introduzione all'autenticazione in Automazione di Azure.See Introduction to authentication in Azure Automation.

Il Centro sicurezza di Azure pone vincoli agli utenti che possono eseguire qualsiasi script, firmato o meno, in una macchina virtuale.ASC places constraints on users who can run any scripts, either signed or unsigned, on a VM. Se si ha accesso alla radice di una macchina virtuale, è necessario configurare in modo esplicito la macchina con una firma digitale oppure disattivarla.If you are a user with root access to a VM, you must explicitly configure the machine with a digital signature or turn it off. Altrimenti, è possibile eseguire solo uno script per applicare gli aggiornamenti del sistema operativo dopo aver creato un account di Automazione e aver abilitato la funzionalità appropriata.Otherwise, you can only run a script to apply operating system updates after creating an Automation account and enabling the appropriate feature.

SottoscrizioniSubscriptions

Una sottoscrizione di Azure è un contratto con Microsoft per l'uso di uno o più servizi basati su cloud, il cui costo viene addebitato.An Azure subscription is an agreement with Microsoft to use one or more cloud-based services, for which you are charged. Per Automazione di Azure, ogni sottoscrizione è collegata a un account di Automazione di Azure ed è possibile creare più sottoscrizioni nell'account.For Azure Automation, each subscription is linked to an Azure Automation account, and you can create multiple subscriptions in the account.

CredenzialiCredentials

Un runbook richiede credenziali appropriate per accedere a una risorsa, sia per i sistemi Azure che per quelli di terze parti.A runbook requires appropriate credentials to access any resource, whether for Azure or third-party systems. Queste credenziali vengono archiviate in Automazione di Azure, Key Vault e così via.These credentials are stored in Azure Automation, Key Vault, etc.

Monitoraggio di AzureAzure Monitor

Automazione di Azure usa monitoraggio di Azure per monitorare le operazioni del computer.Azure Automation makes use of Azure Monitor for monitoring its machine operations. Per le operazioni è necessaria un'area di lavoro Log Analytics e un agente log Analytics.The operations require a Log Analytics workspace and a Log Analytics agent.

Agente di Log Analytics per WindowsLog Analytics agent for Windows

L'agente di Log Analytics per Windows funziona con Monitoraggio di Azure per gestire le macchine virtuali Windows e i computer fisici.The Log Analytics agent for Windows works with Azure Monitor to manage Windows VMs and physical computers. I computer possono essere eseguiti in Azure o in un ambiente non Azure, ad esempio un data center locale.The machines can be running either in Azure or in a non-Azure environment, such as a local datacenter.

Nota

L'agente di Log Analytics per Windows era noto in precedenza come Microsoft Monitoring Agent (MMA).The Log Analytics agent for Windows was previously known as the Microsoft Monitoring Agent (MMA).

Agente di Log Analytics per LinuxLog Analytics agent for Linux

L'agente di Log Analytics per Linux funziona in modo analogo all'agente per Windows, ma connette i computer Linux a Monitoraggio di Azure.The Log Analytics agent for Linux works similarly to the agent for Windows, but connects Linux computers to Azure Monitor. L'agente viene installato con un account utente nxautomation che consente l'esecuzione di comandi che richiedono autorizzazioni radice, ad esempio, in un ruolo di lavoro ibrido per Runbook.The agent is installed with a nxautomation user account that allows execution of commands requiring root permissions, for example, on a Hybrid Runbook Worker. L'account nxautomation è un account di sistema che non richiede una password.The nxautomation account is a system account that doesn't require a password.

L'account nxautomation deve essere presente con le autorizzazioni sudo corrispondenti durante l'installazione di un ruolo di lavoro ibrido per runbook di Linux.The nxautomation account with the corresponding sudo permissions must be present during installation of a Linux Hybrid Runbook worker. Se si tenta di installare il ruolo di lavoro e l'account non è presente o non dispone delle autorizzazioni appropriate, l'installazione non riesce.If you try to install the worker and the account is not present or doesn’t have the appropriate permissions, the installation fails.

Non modificare le autorizzazioni della sudoers.d cartella o della relativa proprietà.You should not change the permissions of the sudoers.d folder or its ownership. L'autorizzazione sudo è obbligatoria per l'account nxautomation e le autorizzazioni non devono essere rimosse.Sudo permission is required for the nxautomation account and the permissions should not be removed. La limitazione di questo problema a determinate cartelle o comandi può comportare una modifica sostanziale.Restricting this to certain folders or commands may result in a breaking change.

I log disponibili per l'agente di Log Analytics e l'account nxautomation sono:The logs available for the Log Analytics agent and the nxautomation account are:

  • /var/opt/microsoft/omsagent/log/omsagent.log - Log dell'agente di Log Analytics/var/opt/microsoft/omsagent/log/omsagent.log - Log Analytics agent log
  • /var/opt/Microsoft/omsagent/run/automationworker/worker.log - Log del ruolo di lavoro di Automazione/var/opt/microsoft/omsagent/run/automationworker/worker.log - Automation worker log

Nota

L'utente nxautomation abilitato come parte di Gestione aggiornamenti esegue solo runbook firmati.The nxautomation user enabled as part of Update Management executes only signed runbooks.

Autorizzazioni per i runbookRunbook permissions

Il runbook richiede le autorizzazioni per l'autenticazione in Azure tramite le credenziali.A runbook needs permissions for authentication to Azure, through credentials. Vedere Panoramica dell'autenticazione di automazione di Azure.See Azure Automation authentication overview.

ModuliModules

Automazione di Azure supporta una serie di moduli predefiniti, tra cui alcuni moduli AzureRM (AzureRM.Automation) e un modulo che contiene diversi cmdlet interni.Azure Automation supports a number of default modules, including some AzureRM modules (AzureRM.Automation) and a module containing several internal cmdlets. Sono inoltre supportati i moduli installabili, tra cui i moduli Az (Az.Automation), attualmente preferiti ai moduli AzureRM.Also supported are installable modules, including the Az modules (Az.Automation), currently being used in preference to AzureRM modules. Per informazioni dettagliate sui moduli disponibili per le configurazioni di runbook e DSC, vedere Gestire i moduli in Automazione di Azure.For details of the modules that are available for your runbooks and DSC configurations, see Manage modules in Azure Automation.

CertificatiCertificates

Automazione di Azure usa i certificati per l'autenticazione in Azure o li aggiunge alle risorse di Azure o di terze parti.Azure Automation uses certificates for authentication to Azure or adds them to Azure or third-party resources. I certificati vengono archiviati in modo sicuro per consentirne l'accesso ai runbook e alle configurazioni DSC.The certificates are stored securely for access by runbooks and DSC configurations.

I runbook possono usare certificati autofirmati, che non sono firmati da un'autorità di certificazione (CA).Your runbooks can use self-signed certificates, which are not signed by a certificate authority (CA). Vedere Creare un nuovo certificato.See Create a new certificate.

ProcessiJobs

Automazione di Azure supporta un ambiente per l'esecuzione di processi dallo stesso account di Automazione.Azure Automation supports an environment to run jobs from the same Automation account. In un singolo runbook possono venire eseguiti molti processi contemporaneamente.A single runbook can have many jobs running at one time. Quanti più processi vengono eseguiti contemporaneamente, tanto più spesso questi possono essere inviati allo stesso ambiente sandbox.The more jobs you run at the same time, the more often they can be dispatched to the same sandbox.

I processi in esecuzione nello stesso processo sandbox possono influire l'uno sull'altro.Jobs running in the same sandbox process can affect each other. Un esempio è dato dal cmdlet Disconnect-AzAccount.One example is running the Disconnect-AzAccount cmdlet. L'esecuzione di questo cmdlet disconnette ogni processo runbook nel processo sandbox condiviso.Execution of this cmdlet disconnects each runbook job in the shared sandbox process. Per un esempio di utilizzo di questo scenario, vedere Evitare i processi simultanei.For an example of working with this scenario, see Prevent concurrent jobs.

Nota

I processi di PowerShell avviati da un runbook eseguito in una sandbox di Azure potrebbero non essere eseguiti nella modalità del linguaggio PowerShell completa.PowerShell jobs started from a runbook that runs in an Azure sandbox might not run in the full PowerShell language mode.

Stati dei processiJob statuses

La tabella seguente descrive gli stati possibili per un processo.The following table describes the statuses that are possible for a job. È possibile visualizzare un riepilogo dello stato di tutti i processi del runbook o esaminare i dettagli di uno specifico processo del runbook nel portale di Azure.You can view a status summary for all runbook jobs or drill into details of a specific runbook job in the Azure portal. È anche possibile configurare l'integrazione con l'area di lavoro Log Analytics per inoltrare lo stato del processo del runbook e i flussi di processo.You can also configure integration with your Log Analytics workspace to forward runbook job status and job streams. Per altre informazioni sull'integrazione con i log di Monitoraggio di Azure, vedere Inoltrare lo stato e i flussi del processo da Automazione ai log di Monitoraggio di Azure.For more information about integrating with Azure Monitor logs, see Forward job status and job streams from Automation to Azure Monitor logs. Per un esempio di utilizzo degli stati in un runbook, vedere anche Ottenere gli stati del processo.See also Obtain job statuses for an example of working with statuses in a runbook.

StatoStatus DescrizioneDescription
AttivazioneActivating È in corso l'attivazione del processo.The job is being activated.
CompletiCompleted Il processo è stato completato.The job completed successfully.
Operazione non riuscitaFailed La compilazione di un runbook grafico o di un runbook del flusso di lavoro di PowerShell non è riuscita.A graphical or PowerShell Workflow runbook failed to compile. Non è stato possibile avviare il runbook di PowerShell oppure il processo conteneva un'eccezione.A PowerShell runbook failed to start or the job had an exception. Vedere Tipi di runbook di Automazione di Azure.See Azure Automation runbook types.
Failed, waiting for resourcesFailed, waiting for resources Il processo non è riuscito perché ha raggiunto il limite di condivisione equa tre volte iniziando ogni volta dallo stesso checkpoint o dall'inizio del runbook.The job failed because it reached the fair share limit three times and started from the same checkpoint or from the start of the runbook each time.
QueuedQueued Il processo è in attesa che le risorse diventino disponibili in un ruolo di lavoro di Automazione per poter essere avviato.The job is waiting for resources on an Automation worker to become available so that it can be started.
ResumingResuming Il sistema sta riprendendo il processo dopo che è stato sospeso.The system is resuming the job after it was suspended.
In esecuzioneRunning Il processo è in esecuzione.The job is running.
Running, waiting for resourcesRunning, waiting for resources Il processo è stato scaricato perché ha raggiunto il limite di condivisione equa.The job has been unloaded because it reached the fair share limit. Riprenderà a breve dall'ultimo checkpoint.It will resume shortly from its last checkpoint.
Avvio in corsoStarting Il processo è stato assegnato a un computer di lavoro e il sistema lo sta avviando.The job has been assigned to a worker, and the system is starting it.
ArrestatoStopped Il processo è stato arrestato dall'utente prima del completamento.The job was stopped by the user before it was completed.
StoppingStopping Il sistema sta arrestando il processo.The system is stopping the job.
SuspendedSuspended Si applica solo ai runbook grafici e ai runbook del flusso di lavoro di PowerShell.Applies to graphical and PowerShell Workflow runbooks only. Il processo è stato sospeso dall'utente, dal sistema o da un comando del runbook.The job was suspended by the user, by the system, or by a command in the runbook. Se un runbook non ha un checkpoint, viene avviato dall'inizio.If a runbook doesn't have a checkpoint, it starts from the beginning. Se ha un checkpoint, può essere nuovamente avviato e riprendere dall'ultimo checkpoint.If it has a checkpoint, it can start again and resume from its last checkpoint. Il runbook viene sospeso dal sistema solo quando si verifica un'eccezione.The system only suspends the runbook when an exception occurs. Per impostazione predefinita, la variabile ErrorActionPreference è impostata su Continua, a indicare che il processo continua a essere eseguito in caso di errore.By default, the ErrorActionPreference variable is set to Continue, indicating that the job keeps running on an error. Se la variabile di preferenza è impostata su Interrompi, il processo viene sospeso in caso di errore.If the preference variable is set to Stop, the job suspends on an error.
SuspendingSuspending Si applica solo ai runbook grafici e ai runbook del flusso di lavoro di PowerShell.Applies to graphical and PowerShell Workflow runbooks only. Il sistema sta provando a sospendere il processo su richiesta dell'utente.The system is trying to suspend the job at the request of the user. Il runbook deve raggiungere il checkpoint successivo prima di poter essere sospeso.The runbook must reach its next checkpoint before it can be suspended. Se ha già superato l'ultimo checkpoint, viene completato prima di poter essere sospeso.If it has already passed its last checkpoint, it completes before it can be suspended.

Registrazione dell'attivitàActivity logging

L'esecuzione dei runbook in Automazione di Azure scrive i dettagli in un log attività per l'account di Automazione.Execution of runbooks in Azure Automation writes details in an activity log for the Automation account. Per informazioni dettagliate sull'uso del log, vedere Recuperare i dettagli dal log attività.For details of using the log, see Retrieve details from Activity log.

EccezioniExceptions

Questa sezione descrive alcuni modi per gestire le eccezioni o i problemi intermittenti nei runbook.This section describes some ways to handle exceptions or intermittent issues in your runbooks. Un esempio è l'eccezione WebSocket.An example is a WebSocket exception. La corretta gestione delle eccezioni impedisce che gli errori di rete temporanei causino un errore del runbook.Correct exception handling prevents transient network failures from causing your runbooks to fail.

ErrorActionPreferenceErrorActionPreference

La variabile ErrorActionPreference determina il modo in cui PowerShell risponde a un errore non fatale.The ErrorActionPreference variable determines how PowerShell responds to a non-terminating error. Gli errori fatali terminano sempre un processo e non sono interessati da ErrorActionPreference.Terminating errors always terminate and are not affected by ErrorActionPreference.

Quando il runbook usa ErrorActionPreference, un errore che normalmente non è fatale, ad esempio PathNotFound del cmdlet Get-ChildItem impedisce il completamento del runbook.When the runbook uses ErrorActionPreference, a normally non-terminating error such as PathNotFound from the Get-ChildItem cmdlet stops the runbook from completing. L'esempio seguente mostra l'uso di ErrorActionPreference.The following example shows the use of ErrorActionPreference. Il comando Write-Output finale non viene mai eseguito, perché lo script si interrompe.The final Write-Output command never executes, as the script stops.

$ErrorActionPreference = 'Stop'
Get-ChildItem -path nofile.txt
Write-Output "This message will not show"

Try Catch FinallyTry Catch Finally

Try Catch Finally viene usato negli script di PowerShell per gestire gli errori fatali.Try Catch Finally is used in PowerShell scripts to handle terminating errors. Lo script può usare questo meccanismo per intercettare eccezioni specifiche o eccezioni generali.The script can use this mechanism to catch specific exceptions or general exceptions. L'istruzione catch deve essere usata per tenere traccia o tentare di gestire gli errori.The catch statement should be used to track or try to handle errors. L'esempio seguente tenta di scaricare un file che non esiste.The following example tries to download a file that does not exist. Rileva l'eccezione System.Net.WebException e restituisce l'ultimo valore per un'altra eccezione.It catches the System.Net.WebException exception and returns the last value for any other exception.

try
{
   $wc = new-object System.Net.WebClient
   $wc.DownloadFile("http://www.contoso.com/MyDoc.doc")
}
catch [System.Net.WebException]
{
    "Unable to download MyDoc.doc from http://www.contoso.com."
}
catch
{
    "An error occurred that could not be resolved."
}

ThrowThrow

Throw può essere usato per generare un errore fatale.Throw can be used to generate a terminating error. Questo meccanismo può essere utile quando si definisce la logica personalizzata in un runbook.This mechanism can be useful when defining your own logic in a runbook. Se lo script soddisfa un criterio che dovrebbe arrestarlo, può usare l'istruzione throw per eseguire l'interruzione.If the script meets a criterion that should stop it, it can use the throw statement to stop. L'esempio seguente usa questa istruzione per mostrare un parametro di funzione obbligatorio.The following example uses this statement to show a required function parameter.

function Get-ContosoFiles
{
  param ($path = $(throw "The Path parameter is required."))
  Get-ChildItem -Path $path\*.txt -recurse
}

ErrorsErrors

Il runbook deve gestire gli errori.Your runbooks must handle errors. Automazione di Azure supporta due tipi di errori di PowerShell, fatali e non fatali.Azure Automation supports two types of PowerShell errors, terminating and non-terminating.

Quando si verificano, gli errori fatali interrompono l'esecuzione del runbook.Terminating errors stop runbook execution when they occur. Il runbook si interrompe e lo stato del processo è Non riuscito.The runbook stops with a job status of Failed.

Gli errori non fatali consentono allo script di continuare anche dopo che questi si sono verificati.Non-terminating errors allow a script to continue even after they occur. Un esempio di errore non fatale è quello che si verifica quando il runbook usa il cmdlet Get-ChildItem con un percorso che non esiste.An example of a non-terminating error is one that occurs when a runbook uses the Get-ChildItem cmdlet with a path that doesn't exist. PowerShell rileva che il percorso non esiste, genera un errore e passa alla cartella successiva.PowerShell sees that the path doesn't exist, throws an error, and continues to the next folder. In questo caso, l'errore non imposta lo stato del processo del runbook su Non riuscito e il processo potrebbe anche essere completato.The error in this case doesn't set the runbook job status to Failed, and the job might even be completed. Per forzare l'arresto di un runbook in caso di errore non fatale, è possibile usare ErrorAction Stop nel cmdlet.To force a runbook to stop on a non-terminating error, you can use ErrorAction Stop on the cmdlet.

Processi di chiamataCalling processes

I runbook eseguiti nelle sandbox di Azure non supportano i processi di chiamata, ad esempio file eseguibili (file con estensione EXE) o sottoprocessi.Runbooks that run in Azure sandboxes don't support calling processes, such as executables (.exe files) or subprocesses. Il motivo è che una sandbox di Azure è un processo condiviso eseguito in un contenitore che potrebbe non essere in grado di accedere a tutte le API sottostanti.The reason for this is that an Azure sandbox is a shared process run in a container that might not be able to access all the underlying APIs. Per gli scenari che richiedono software di terze parti o chiamate ai sottoprocessi, è consigliabile eseguire un runbook in un ruolo di lavoro ibrido per runbook.For scenarios requiring third-party software or calls to subprocesses, you should execute a runbook on a Hybrid Runbook Worker.

Caratteristiche dell'applicazione e del dispositivoDevice and application characteristics

I processi di runbook nelle sandbox di Azure non possono accedere alle caratteristiche del dispositivo o dell'applicazione.Runbook jobs in Azure sandboxes can't access any device or application characteristics. L'API più comunemente usata per eseguire query sulle metriche delle prestazioni in Windows è WMI e alcune delle metriche comuni sono l'utilizzo della memoria e della CPU.The most common API used to query performance metrics on Windows is WMI, with some of the common metrics being memory and CPU usage. Tuttavia, non importa quale API viene usata, perché i processi in esecuzione nel cloud non possono accedere all'implementazione Microsoft di Web-Based Enterprise Management (WBEM).However, it doesn't matter what API is used, as jobs running in the cloud can't access the Microsoft implementation of Web-Based Enterprise Management (WBEM). Questa piattaforma si basa su Common Information Model (CIM) e offre gli standard di settore per la definizione delle caratteristiche del dispositivo e dell'applicazione.This platform is built on the Common Information Model (CIM), providing the industry standards for defining device and application characteristics.

WebhookWebhooks

I servizi esterni, ad esempio Azure DevOps Services e GitHub, possono avviare un runbook in Automazione di Azure.External services, for example, Azure DevOps Services and GitHub, can start a runbook in Azure Automation. Per eseguire questo tipo di avvio, il servizio usa un webhook tramite una sola richiesta HTTP.To do this type of startup, the service uses a webhook via a single HTTP request. L'uso di un webhook consente l'avvio dei runbook senza l'implementazione di una funzionalità di Automazione di Azure completa.Use of a webhook allows runbooks to be started without implementation of a full Azure Automation feature.

Risorse condiviseShared resources

Per condividere le risorse tra tutti runbook nel cloud, Azure usa un concetto denominato condivisione equa.To share resources among all runbooks in the cloud, Azure uses a concept called fair share. Con una condivisione equa, Azure scarica o arresta temporaneamente i processi eseguiti per più di tre ore.Using fair share, Azure temporarily unloads or stops any job that has run for more than three hours. I processi dei runbook di PowerShell e dei runbook di Python vengono arrestati, non vengono riavviati e lo stato del processo risulta Arrestato.Jobs for PowerShell runbooks and Python runbooks are stopped and not restarted, and the job status becomes Stopped.

Per le attività a esecuzione prolungata di Automazione di Azure è consigliabile usare un ruolo di lavoro ibrido per runbook.For long-running Azure Automation tasks, it's recommended to use a Hybrid Runbook Worker. I ruoli di lavoro ibridi per runbook non sono limitati da condivisione equa e non hanno una limitazione rispetto alla possibile durata dell'esecuzione di un runbook.Hybrid Runbook Workers aren't limited by fair share, and don't have a limitation on how long a runbook can execute. Gli altri limiti dei processi si applicano sia ai sandbox di Azure che ai ruoli di lavoro ibridi per runbook.The other job limits apply to both Azure sandboxes and Hybrid Runbook Workers. Sebbene i ruoli di lavoro ibridi per Runbook non siano limitati dal limite di condivisione equa di tre ore, è necessario sviluppare manuali operativi per l'esecuzione nei ruoli di lavoro che supportano i riavvii da problemi di infrastruttura locale imprevisti.While Hybrid Runbook Workers aren't limited by the three hour fair share limit, you should develop runbooks to run on the workers that support restarts from unexpected local infrastructure issues.

Un'altra opzione consiste nell'ottimizzare il runbook usando un runbook figlio.Another option is to optimize a runbook by using child runbooks. Ad esempio, il runbook potrebbe eseguire il ciclo della stessa funzione su diverse risorse, ad esempio, con un'operazione di database su diversi database.For example, your runbook might loop through the same function on several resources, for example, with a database operation on several databases. È possibile spostare questa funzione in un runbook figlio e fare in modo che il runbook lo chiami usando Start-AzAutomationRunbook.You can move this function to a child runbook and have your runbook call it using Start-AzAutomationRunbook. I runbook figlio vengono eseguiti in parallelo in processi separati.Child runbooks execute in parallel in separate processes.

L'uso di runbook figlio riduce la quantità totale di tempo per il completamento del runbook padre.Using child runbooks decreases the total amount of time for the parent runbook to complete. Il runbook può usare il cmdlet Get-AzAutomationJob per verificare lo stato del processo di un runbook figlio se dispone di altre operazioni dopo il completamento del runbook figlio.Your runbook can use the Get-AzAutomationJob cmdlet to check the job status for a child runbook if it still has more operations after the child completes.

Passaggi successiviNext steps