Aplica-se a: ✔️ VMs do Windows ✔️ VMs do Linux ✔️ Ambiente no local ✔️ Servidores habilitados para Azure Arc ✔️ VMs do Azure.
Os eventos pré e pós permitem executar ações definidas pelo usuário antes e depois da configuração de manutenção agendada. Para obter mais informações, examine o funcionamento de um evento pré e pós no Azure Update Manager.
Este artigo descreve como criar eventos pré e pós no Azure Update Manager.
Event Grid em configurações de manutenção da agenda
O Gestor de Actualizações do Azure utiliza o Event Grid para criar e gerir eventos pré e pós. Para obter mais informações, consulte a visão geral da Grade de Eventos. Para acionar um evento antes ou depois de uma janela de manutenção programada, é necessário o seguinte:
-
Configuração de manutenção programada - Pode criar eventos pré e pós para uma configuração de manutenção programada no Gestor de Actualizações do Azure. Para mais informações, veja atualizar agendas usando as configurações de manutenção.
-
Ação a executar no pré ou pós-evento - Pode utilizar os processador de eventos (Endpoints) suportados pela grelha de eventos para definir ações ou tarefas. Aqui estão exemplos de como criar Runbooks de Automação do Azure através de Webhooks e Azure Functions. Nos Manipuladores de eventos/Endpoints, você deve definir as ações que devem ser executadas como parte dos eventos pré e pós.
-
Webhook - Crie um Runbook do PowerShell 7.2 e ligue o Runbook a um webhook.
-
Função Azure - Crie uma Função Azure.
-
Pré e pós evento - Pode seguir os passos partilhados na secção seguinte para criar um pré e pós-evento para a configuração da manutenção agendada. Para saber mais sobre os termos utilizados no separador Noções básicas da grelha de eventos, consulte Termos Event Grid.
Criar um pré-evento e pós-evento
Crie eventos pré e pós enquanto cria uma nova configuração de manutenção de agendamento
Inicie sessão no portal do Azure e aceda ao Gestor de Atualizações do Azure.
Em Gerenciar, selecione Máquinas.
Selecione Agendar atualizações na faixa de opções na parte superior.
Na página Criar uma configuração de manutenção, selecione o separador Eventos.
Selecione +Subscrição de Eventos para criar um evento pré/pós.
Na página Adicionar Subscrição de Eventos , introduza os seguintes detalhes: Na secção Detalhes da Subscrição de Eventos , forneça um nome adequado.
- Mantenha o esquema como Esquema de Grade de Eventos.
- Insira o Nome do Tópico do Sistema para o primeiro evento que você cria nesta configuração de manutenção. O mesmo nome de Tópico do Sistema será preenchido automaticamente para os eventos subsequentes.
- Na secção Tipos de Evento, Filtrar para Tipos de Evento, selecione os tipos de evento que deseja que sejam enviados para o destino. Você pode selecionar Evento de Pré-Manutenção ou Evento de Pós-Manutenção ou ambos. Para saber mais sobre tipos de evento específicos para agendar configurações de manutenção, consulte Tipos de eventos do Azure.
- Na seção Detalhes do ponto de extremidade, selecione o ponto de extremidade do qual você deseja receber a resposta.
Selecione Adicionar para criar os eventos pré e pós para a programação após a sua criação.
Nota
No fluxo acima, Webhook e Azure Functions são os dois manipuladores/pontos de extremidade de eventos que você pode escolher. Quando você seleciona Adicionar, a assinatura do evento não é criada, mas adicionada à configuração de manutenção. A subscrição de eventos é criada juntamente com a configuração de manutenção planeada.
Crie uma configuração de manutenção seguindo as etapas listadas aqui.
-
# 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
Crie uma configuração de manutenção seguindo as etapas listadas aqui.
-
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
Crie uma configuração de manutenção seguindo as etapas listadas aqui.
# Criação de tópicos do sistema Saiba mais
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>?api-version=2022-06-15
Corpo do Pedido:
{
"properties": {
"source": "/subscriptions/<subscription Id>/resourceGroups/<resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenance configuration name> ",
"topicType": "Microsoft.Maintenance.MaintenanceConfigurations"
},
"location": "<location>"
}
# Criação de subscrição de eventos Saiba mais
Tipos de eventos permitidos - 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 do Pedido:
{
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "<Webhook URL>"
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PreMaintenanceEvent"
]
}
}
}
Função do 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
Órgão do Pedido
{
"properties": {
"destination": {
"endpointType": "AzureFunction",
"properties": {
"resourceId": "<Azure Function Resource Id>"
}
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PostMaintenanceEvent"
]
}
}
Criar eventos pré e pós em uma configuração de manutenção de agenda existente
Inicie sessão no portal do Azure e aceda ao Gestor de Atualizações do Azure.
Em Gerir, selecione Máquinas, Configurações de manutenção.
Na página Configuração de Manutenção, selecione a configuração de manutenção à qual você deseja adicionar um evento pré e pós.
Na página Configuração de manutenção selecionada, em Configurações, selecione Eventos. Como alternativa, em Visão geral, selecione o cartão Criar um evento de manutenção.
Selecione +Subscrição de Eventos para criar um Evento de Manutenção Pré/Pós.
Na página Criar Subscrição de Eventos , introduza os seguintes detalhes:
Na seção Detalhes da Assinatura do Evento, forneça um nome apropriado.
Mantenha o esquema como Esquema de Grade de Eventos.
Na seção Detalhes do Tópico, forneça um nome apropriado para o Nome do Tópico do Sistema.
Na secção Tipos de Evento, Filtrar para Tipos de Evento, selecione os tipos de evento que pretende enviar por push para o ponto de extremidade ou destino. Você pode selecionar entre Evento de Pré-Manutenção e Evento de Pós-Manutenção. Para saber mais sobre tipos de evento específicos para agendar configurações de manutenção, consulte Tipos de eventos do Azure.
Na seção Detalhes do Ponto de Extremidade, selecione o ponto de extremidade de onde deseja receber a resposta.
Selecione Criar para configurar os eventos pré e pós em uma agenda existente.
$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
# Criação de tópicos do sistema Saiba mais
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>?api-version=2022-06-15
Corpo do Pedido:
{
"properties": {
"source": "/subscriptions/<subscription Id>/resourceGroups/<resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenance configuration name> ",
"topicType": "Microsoft.Maintenance.MaintenanceConfigurations"
},
"location": "<location>"
}
# Criação de subscrição de eventos Saiba mais
Tipos de eventos permitidos - 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 do Pedido:
{
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "<Webhook URL>"
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PreMaintenanceEvent"
]
}
}
}
Função do 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
Órgão do Pedido
{
"properties": {
"destination": {
"endpointType": "AzureFunction",
"properties": {
"resourceId": "<Azure Function Resource Id>"
}
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PostMaintenanceEvent"
]
}
}
Próximos passos
- Para obter uma visão geral dos eventos pré e pós no Azure Update Manager, consulte aqui.
- Para saber como gerir os eventos de pré e pós-manutenção ou cancelar uma execução agendada, consulte o artigo sobre eventos de configuração pré e pós-manutenção.
- Para saber como usar eventos pré e pós para ativar e desativar suas VMs usando Webhooks, consulte aqui.
- Para saber como usar eventos pré e pós para ativar e desativar suas VMs usando o Azure Functions, consulte aqui.