Si applica a: ✔️ Macchine virtuali Windows ✔️ Macchine virtuali Linux ✔️ Ambiente locale ✔️ Server abilitati per Azure Arc ✔️ Macchine virtuali Azure.
Gli eventi pre e post consentono di eseguire azioni definite dall'utente prima e dopo la configurazione di manutenzione pianificata. Per altre informazioni, vedere le operazioni di un evento preliminare e post in Gestione aggiornamenti di Azure.
Questo articolo descrive come creare gli eventi pre e post in Gestione aggiornamenti di Azure.
Griglia di eventi nelle configurazioni di manutenzione pianificate
Gestore aggiornamenti di Azure sfrutta Griglia di eventi per creare e gestire eventi pre-eventi e post-eventi. Per altre informazioni, vedere la panoramica di Griglia di eventi. Per attivare un evento prima o dopo una finestra di manutenzione pianificata, è necessario quanto segue:
- Pianificare la configurazione della manutenzione: è possibile creare eventi pre e post per una configurazione di manutenzione pianificata in Gestione aggiornamenti di Azure. Per altre informazioni, vedere Pianificare gli aggiornamenti usando le configurazioni di manutenzione.
- Azione da eseguire nell'evento pre o post: è possibile usare i gestori eventi (endpoint) supportati da Griglia di eventi per definire azioni o attività. Ecco alcuni esempi su come creare runbook di Automazione di Azure tramite webhook e Funzioni di Azure. All'interno di questi gestori eventi/endpoint, è necessario definire le azioni che devono essere eseguite come parte di eventi precedenti e posteriori.
- Webhook - Creare un runbook di PowerShell 7.2 e collegare il runbook a un webhook.
- Funzione di Azure - Creare una funzione di Azure.
- Evento pre e post: è possibile seguire i passaggi condivisi nella sezione seguente per creare un evento preliminare e successivo per la configurazione della manutenzione pianificata. Per altre informazioni sui termini usati nella scheda Informazioni di base di Griglia di eventi, vedere Termini di Griglia di eventi.
Creare un pre-evento e post-evento
Creare eventi pre e post-eventi durante la creazione di una nuova configurazione di manutenzione pianificata
Accedere al portale di Azure e passare a Gestore aggiornamenti di Azure.
In Gestisci selezionare Computer.
Selezionare Pianifica aggiornamenti dalla barra multifunzione nella parte superiore.
Nella pagina Crea una configurazione di manutenzione selezionare la scheda Eventi.
Selezionare +Sottoscrizione eventi per creare un evento pre/post.
Nella pagina Aggiungi sottoscrizione di eventi immettere i dettagli seguenti: nella sezione Dettagli sottoscrizione eventi specificare un nome appropriato.
- Mantenere lo schema come schema di Griglia di eventi.
- Immettere il nome dell'argomento di sistema per il primo evento creato in questa configurazione di manutenzione. Lo stesso nome dell'argomento di sistema verrà popolato automaticamente per gli eventi conseguenti.
- Nella sezione Tipi di eventi, Filtrare in tipi di eventi, selezionare i tipi di evento di cui si vuole eseguire il push nell'endpoint o nella destinazione. È possibile selezionare Pre Maintenance Event o Post Maintenance Event o entrambi. Per altre informazioni sui tipi di evento specifici per pianificare le configurazioni di manutenzione, vedere Tipi di eventi di Azure.
- Nella sezione Dettagli endpoint selezionare l'endpoint da cui si vuole ricevere la risposta.
Selezionare Aggiungi per creare gli eventi pre e post per la pianificazione al momento della creazione.
Nota
Nel flusso precedente, Webhook e Funzioni di Azure sono i due gestori eventi/endpoint tra cui è possibile scegliere. Quando si seleziona Aggiungi, la sottoscrizione di eventi non viene creata ma aggiunta alla configurazione di manutenzione. La sottoscrizione di eventi viene creata insieme alla configurazione di pianificazione della manutenzione.
Creare una configurazione di manutenzione seguendo i passaggi elencati qui.
-
# Obtain the Maintenance Configuration ID from Step 1 and assign it to MaintenanceConfigurationResourceId variable
$MaintenanceConfigurationResourceId = "/subscriptions/<subId>/resourceGroups/<Resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<Maintenance configuration Name>"
# Use the same Resource Group that you used to create maintenance configuration in Step 1
$ResourceGroupForSystemTopic = "<Resource Group for System Topic>"
$SystemTopicName = "<System topic name>"
$TopicType = "Microsoft.Maintenance.MaintenanceConfigurations"
$SystemTopicLocation = "<System topic location>"
# System topic creation
New-AzEventGridSystemTopic -ResourceGroupName $ResourceGroupForSystemTopic -Name $SystemTopicName -Source $MaintenanceConfigurationResourceId -TopicType $TopicType -Location $SystemTopicLocation
# Event subscription creation
$IncludedEventTypes = @("Microsoft.Maintenance.PreMaintenanceEvent")
# Webhook
$EventSubscriptionName = "PreEventWebhook"
$PreEventWebhookEndpoint = "<Webhook URL>"
$dest = New-AzEventGridWebHookEventSubscriptionDestinationObject -EndpointUrl $PreEventWebhookEndpoint
New-AzEventGridSystemTopicEventSubscription -ResourceGroupName $ResourceGroupForSystemTopic -SystemTopicName $SystemTopicName -EventSubscriptionName $EventSubscriptionName -Endpoint $PreEventWebhookEndpoint -IncludedEventType $IncludedEventTypes -Destination $dest
# Azure Function
$dest = New-AzEventGridAzureFunctionEventSubscriptionDestinationObject -ResourceId "<Azure Function Resource Id>"
New-AzEventGridSystemTopicEventSubscription -ResourceGroupName $ResourceGroupForSystemTopic -SystemTopicName $SystemTopicName -EventSubscriptionName $EventSubscriptionName -Destination $dest -IncludedEventType $IncludedEventTypes
Creare una configurazione di manutenzione seguendo i passaggi elencati qui.
-
SystemTopicName="<System topic name>
# Use the same Resource Group that you used to create maintenance configuration in Step 1
ResourceGroupName="<Resource Group mentioned in Step 1>"
# Obtain the Maintenance Configuration ID from Step 1 and assign it to Source variable
Source="/subscriptions/<subId>/resourceGroups/<Resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<Maintenance configuration Name>"
TopicType="Microsoft.Maintenance.MaintenanceConfigurations"
Location="<System topic location> "
# System topic creation
az eventgrid system-topic create --name $SystemTopicName --resource-group $ResourceGroupName --source $Source --topic-type $TopicType --location $Location
# Event subscription creation
IncludedEventTypes='("Microsoft.Maintenance.PreMaintenanceEvent")'
# Webhook
az eventgrid system-topic event-subscription create --name "<Event subscription name>" --resource-group $ResourceGroupName --system-topic-name $SystemTopicName --endpoint-type webhook --endpoint "<webhook URL>" --included-event-types IncludedEventTypes
# Azure Function
az eventgrid system-topic event-subscription create –name "<Event subscription name>" --resource-group $ResourceGroupName --system-topic-name $SystemTopicName --endpoint-type azurefunction --endpoint "<Azure Function ResourceId>" --included-event-types IncludedEventTypes
Creare una configurazione di manutenzione seguendo i passaggi elencati qui.
# Creazione di argomenti di sistema Altre informazioni
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>?api-version=2022-06-15
Corpo della richiesta:
{
"properties": {
"source": "/subscriptions/<subscription Id>/resourceGroups/<resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenance configuration name> ",
"topicType": "Microsoft.Maintenance.MaintenanceConfigurations"
},
"location": "<location>"
}
# Creazione di sottoscrizioni di eventi Altre informazioni
Tipi di evento consentiti - Microsoft.Maintenance.PreMaintenanceEvent, Microsoft.Maintenance.PostMaintenanceEvent
Webhook
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>/eventSubscriptions/<Event Subscription name>?api-version=2022-06-15
Corpo della richiesta:
{
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "<Webhook URL>"
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PreMaintenanceEvent"
]
}
}
}
Funzione di Azure
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>/eventSubscriptions/<Event Subscription name>?api-version=2022-06-15
Corpo della richiesta
{
"properties": {
"destination": {
"endpointType": "AzureFunction",
"properties": {
"resourceId": "<Azure Function Resource Id>"
}
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PostMaintenanceEvent"
]
}
}
Creare eventi pre e post-eventi in una configurazione di manutenzione pianificata esistente
Accedere al portale di Azure e passare a Gestore aggiornamenti di Azure.
In Gestisci, selezionare Computer, Configurazioni di manutenzione.
Nella pagina Configurazione manutenzione selezionare la configurazione di manutenzione a cui si vuole aggiungere un evento preliminare e post.
Nella pagina Configurazione manutenzione selezionata, in Impostazioni selezionare Eventi. In alternativa, in Panoramicaselezionare la scheda Crea un evento di manutenzione.
Selezionare +Sottoscrizione eventi per creare un evento di pre/post manutenzione.
Nella pagina Crea sottoscrizione di eventi immettere i dettagli seguenti:
Nella sezione Dettagli sottoscrizione eventi specificare un nome appropriato.
Mantenere lo schema come schema di Griglia di eventi.
Nella sezione Dettagli argomento specificare un nome appropriato per il nome dell'argomento di sistema.
Nella sezione Tipi di eventi, Filtrare in tipi di eventi, selezionare i tipi di evento di cui si vuole eseguire il push nell'endpoint o nella destinazione. È possibile selezionare tra Eventi pre manutenzione e Eventi post-manutenzione. Per altre informazioni sui tipi di evento specifici per pianificare le configurazioni di manutenzione, vedere Tipi di eventi di Azure.
Nella sezione Dettagli endpoint selezionare l'endpoint da cui si vuole ricevere la risposta.
Selezionare Crea per configurare gli eventi pre e post su una pianificazione esistente.
$MaintenanceConfigurationResourceId = "/subscriptions/<subId>/resourceGroups/<Resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<Maintenance configuration Name>"
$ResourceGroupForSystemTopic = "<Resource Group for System Topic>"
$SystemTopicName = "<System topic name>"
$TopicType = "Microsoft.Maintenance.MaintenanceConfigurations"
$SystemTopicLocation = "<System topic location>"
# System topic creation
New-AzEventGridSystemTopic -ResourceGroupName $ResourceGroupForSystemTopic -Name $SystemTopicName -Source $MaintenanceConfigurationResourceId -TopicType $TopicType -Location $SystemTopicLocation
# Event subscription creation
$IncludedEventTypes = @("Microsoft.Maintenance.PreMaintenanceEvent")
# Webhook
$EventSubscriptionName = "PreEventWebhook"
$PreEventWebhookEndpoint = "<Webhook URL>"
$dest = New-AzEventGridWebHookEventSubscriptionDestinationObject -EndpointUrl $PreEventWebhookEndpoint
New-AzEventGridSystemTopicEventSubscription -ResourceGroupName $ResourceGroupForSystemTopic -SystemTopicName $SystemTopicName -EventSubscriptionName $EventSubscriptionName -Endpoint $PreEventWebhookEndpoint -IncludedEventType $IncludedEventTypes -Destination $dest
# Azure Function
$dest = New-AzEventGridAzureFunctionEventSubscriptionDestinationObject -ResourceId "<Azure Function Resource Id>"
New-AzEventGridSystemTopicEventSubscription -ResourceGroupName $ResourceGroupForSystemTopic -SystemTopicName $SystemTopicName -EventSubscriptionName $EventSubscriptionName -Destination $dest -IncludedEventType $IncludedEventTypes
SystemTopicName="<System topic name>
ResourceGroupName="<Resource Group for System Topic>"
Source="/subscriptions/<subId>/resourceGroups/<Resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<Maintenance configuration Name>"
TopicType="Microsoft.Maintenance.MaintenanceConfigurations"
Location="<System topic location> "
# System topic creation
az eventgrid system-topic create --name $SystemTopicName --resource-group $ResourceGroupName --source $Source --topic-type $TopicType --location $Location
# Event subscription creation
IncludedEventTypes='("Microsoft.Maintenance.PreMaintenanceEvent")'
# Webhook
az eventgrid system-topic event-subscription create --name "<Event subscription name>" --resource-group $ResourceGroupName --system-topic-name $SystemTopicName --endpoint-type webhook --endpoint "<webhook URL>" --included-event-types IncludedEventTypes
# Azure Function
az eventgrid system-topic event-subscription create –name "<Event subscription name>" --resource-group $ResourceGroupName --system-topic-name $SystemTopicName --endpoint-type azurefunction --endpoint "<Azure Function ResourceId>" --included-event-types IncludedEventTypes
# Creazione di argomenti di sistema Altre informazioni
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>?api-version=2022-06-15
Corpo della richiesta:
{
"properties": {
"source": "/subscriptions/<subscription Id>/resourceGroups/<resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenance configuration name> ",
"topicType": "Microsoft.Maintenance.MaintenanceConfigurations"
},
"location": "<location>"
}
# Creazione di sottoscrizioni di eventi Altre informazioni
Tipi di evento consentiti - Microsoft.Maintenance.PreMaintenanceEvent, Microsoft.Maintenance.PostMaintenanceEvent
Webhook
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>/eventSubscriptions/<Event Subscription name>?api-version=2022-06-15
Corpo della richiesta:
{
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "<Webhook URL>"
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PreMaintenanceEvent"
]
}
}
}
Funzione di Azure
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>/eventSubscriptions/<Event Subscription name>?api-version=2022-06-15
Corpo della richiesta
{
"properties": {
"destination": {
"endpointType": "AzureFunction",
"properties": {
"resourceId": "<Azure Function Resource Id>"
}
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PostMaintenanceEvent"
]
}
}
Passaggi successivi
- Per una panoramica dei pre-eventi e post-eventi in Gestore aggiornamenti di Azure, vedere qui.
- Per informazioni su come gestire gli eventi pre e post o per annullare un'esecuzione pianificata, vedere eventi pre e post di configurazione di manutenzione.
- Per informazioni su come usare gli eventi pre e post per attivare e disattivare le macchine virtuali usando webhook, vedere qui.
- Per informazioni su come usare gli eventi pre e post per attivare e disattivare le macchine virtuali usando Funzioni di Azure, vedere qui.