Dotyczy: ✔️ Maszyny wirtualne Windows ✔️ Maszyny wirtualne Linux ✔️ Środowisko lokalne ✔️ Serwery z obsługą Azure Arc ✔️ Maszyny wirtualne Azure.
Zdarzenia przed i po pozwalają na wykonanie akcji zdefiniowanych przez użytkownika przed i po konfiguracji zaplanowanej konserwacji. Aby uzyskać więcej informacji, zapoznaj się z mechanizmami działania przed i po aktualizacji w usłudze Azure Update Manager.
W tym artykule opisano sposób tworzenia wydarzeń przed i po w usłudze Azure Update Manager.
Usługa Event Grid w konfiguracjach zaplanowanej obsługi technicznej
Menedżer aktualizacji platformy Azure wykorzystuje usługę Event Grid do tworzenia zdarzeń poprzedzających i następczych oraz zarządzania nimi. Aby uzyskać więcej informacji, zapoznaj się z omówieniem usługi Event Grid. Aby wyzwolić zdarzenie przed oknie obsługi harmonogramu lub po nim, wymagane są następujące elementy:
-
Konfiguracja harmonogramu obsługi — Możesz utworzyć zdarzenia poprzedzające i następcze dla konfiguracji harmonogramu obsługi w Menedżer aktualizacji platformy Azure. Aby uzyskać więcej informacji, zobacz Planowanie aktualizacji przy użyciu konfiguracji obsługi.
-
Akcja do wykonania w zdarzeniu poprzedzającym lub następczym — możesz użyć programów obsługi zdarzeń (punktów końcowych) obsługiwanych przez usługę Event Grid w celu zdefiniowania akcji lub zadań. Oto przykłady, jak tworzyć Runbooki w Azure Automation za pomocą webhooków i Azure Functions. W ramach tych programów obsługi zdarzeń/punktów końcowych należy zdefiniować akcje, które powinny być wykonywane w ramach zdarzeń poprzedzających i następczych.
-
Webhook - Utwórz Runbook programu PowerShell 7.2 i połącz Runbook z webhookiem.
-
Funkcja Azure - Utwórz funkcję Azure.
-
Zdarzenie poprzedzające i końcowe — możesz wykonać kroki udostępnione w poniższej sekcji, aby utworzyć zdarzenie poprzedzające i następcze dla konfiguracji harmonogramu obsługi. Aby dowiedzieć się więcej na temat terminów używanych na karcie Podstawy usługi Event Grid, zobacz Terminy usługi Event Grid.
Utwórz wydarzenie przed i po
Twórz zdarzenia wstępne i końcowe podczas tworzenia nowej konfiguracji konserwacji harmonogramu
Zaloguj się do witryny Azure Portal i przejdź do usługi Menedżer aktualizacji platformy Azure.
W obszarze Zarządzanie wybierz pozycję Maszyny.
Wybierz pozycję Zaplanuj aktualizacje na wstążce u góry.
Na stronie Tworzenie konfiguracji konserwacyjnej wybierz kartę Zdarzenia.
Wybierz +Utwórz subskrypcję zdarzenia, aby stworzyć zdarzenie wstępne/końcowe.
Na stronie Dodaj subskrypcję zdarzeń wprowadź następujące szczegóły: W sekcji Szczegóły subskrypcji zdarzeń podaj odpowiednią nazwę.
- Zachowaj schemat jako schemat usługi Event Grid.
- Wprowadź System Topic Name dla pierwszego zdarzenia utworzonego w tej konfiguracji konserwacji. Ta sama nazwa tematu systemowego zostanie automatycznie wypełniona dla kolejnych zdarzeń.
- W sekcji Typy zdarzeń, Filtruj według typów zdarzeń, wybierz typy zdarzeń, które chcesz przesłać do punktu końcowego lub miejsca docelowego. Możesz wybrać zdarzenie przed konserwacją lub zdarzenie po konserwacji albo oba te zdarzenia . Aby dowiedzieć się więcej o typach zdarzeń specyficznych dla planowania konfiguracji konserwacji, zobacz Typy zdarzeń platformy Azure.
-
W sekcji Szczegóły punktu końcowego wybierz punkt końcowy, z którego chcesz otrzymywać odpowiedź.
Wybierz Dodaj, aby utworzyć zdarzenia wstępne i końcowe dla harmonogramu podczas jego tworzenia.
Uwaga
W powyższym przepływie elementy webhook i usługa Azure Functions to dwa programy obsługi zdarzeń/punkty końcowe, które można wybrać. Po wybraniu pozycji Dodaj subskrypcja zdarzeń nie zostanie utworzona, ale dodana do konfiguracji konserwacji. Subskrypcja zdarzeń jest tworzona wraz z konfiguracją konserwacji harmonogramu.
Utwórz konfigurację konserwacji, wykonując kroki wymienione tutaj.
-
# 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
Utwórz konfigurację konserwacji, wykonując kroki wymienione tutaj.
-
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
Utwórz konfigurację konserwacji, wykonując kroki wymienione tutaj.
# Tworzenie tematu systemowego Dowiedz się więcej
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>?api-version=2022-06-15
Treść żądania:
{
"properties": {
"source": "/subscriptions/<subscription Id>/resourceGroups/<resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenance configuration name> ",
"topicType": "Microsoft.Maintenance.MaintenanceConfigurations"
},
"location": "<location>"
}
# Tworzenie subskrypcji zdarzeń Dowiedz się więcej
Dozwolone typy zdarzeń — 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
Treść żądania:
{
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "<Webhook URL>"
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PreMaintenanceEvent"
]
}
}
}
Funkcja platformy 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
Treść żądania
{
"properties": {
"destination": {
"endpointType": "AzureFunction",
"properties": {
"resourceId": "<Azure Function Resource Id>"
}
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PostMaintenanceEvent"
]
}
}
Tworzenie zdarzeń wstępnych i końcowych w istniejącej konfiguracji harmonogramu konserwacji
Zaloguj się do witryny Azure Portal i przejdź do usługi Menedżer aktualizacji platformy Azure.
W obszarze Zarządzanie wybierz pozycję Maszyny, Konfiguracje konserwacji.
Na stronie Konfiguracja konserwacji wybierz konfigurację konserwacji, do której chcesz dodać zdarzenie przed i po.
Na wybranej stronie Konfiguracja konserwacji, w obszarze Ustawienia, wybierz pozycję Zdarzenia. Alternatywnie, w obszarze Przegląd wybierz kartę Utwórz zdarzenie konserwacyjne.
Wybierz pozycję +Subskrypcja zdarzeń, aby utworzyć zdarzenie przed/po konserwacji.
Na stronie Tworzenie subskrypcji zdarzeń wprowadź następujące informacje:
W sekcji Szczegóły subskrypcji zdarzeń podaj odpowiednią nazwę.
Zachowaj schemat jako schemat usługi Event Grid.
W sekcji Szczegóły tematu podaj odpowiednią nazwę dla nazwy tematu systemowego.
W sekcji Typy zdarzeń, Filtruj według typów zdarzeń, wybierz typy zdarzeń, które chcesz przesłać do punktu końcowego lub miejsca docelowego. Możesz wybrać między zdarzeniem przed konserwacją a zdarzeniem po konserwacji. Aby dowiedzieć się więcej o typach zdarzeń specyficznych dla planowania konfiguracji konserwacji, zobacz Typy zdarzeń platformy Azure.
W sekcji Szczegóły punktu końcowego wybierz punkt końcowy, z którego chcesz otrzymywać odpowiedź.
Wybierz pozycję Utwórz, aby skonfigurować zdarzenia wstępne i końcowe według istniejącego harmonogramu.
$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
# Tworzenie tematu systemowego Dowiedz się więcej
PUT /subscriptions/<subscription Id>/resourceGroups/<resource group name>/providers/Microsoft.EventGrid/systemTopics/<system topic name>?api-version=2022-06-15
Treść żądania:
{
"properties": {
"source": "/subscriptions/<subscription Id>/resourceGroups/<resource group>/providers/Microsoft.Maintenance/maintenanceConfigurations/<maintenance configuration name> ",
"topicType": "Microsoft.Maintenance.MaintenanceConfigurations"
},
"location": "<location>"
}
# Tworzenie subskrypcji zdarzeń Dowiedz się więcej
Dozwolone typy zdarzeń — 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
Treść żądania:
{
"properties": {
"destination": {
"endpointType": "WebHook",
"properties": {
"endpointUrl": "<Webhook URL>"
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PreMaintenanceEvent"
]
}
}
}
Funkcja platformy 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
Treść żądania
{
"properties": {
"destination": {
"endpointType": "AzureFunction",
"properties": {
"resourceId": "<Azure Function Resource Id>"
}
}
},
"filter": {
"includedEventTypes": [
"Microsoft.Maintenance.PostMaintenanceEvent"
]
}
}
Następne kroki
- Aby uzyskać przegląd zdarzeń przed i po w menedżerze aktualizacji Azure, zobacz tutaj.
- Aby dowiedzieć się, jak zarządzać zdarzeniami przedkonserwacyjnymi i pokonserwacyjnymi lub jak anulować przebieg harmonogramu, zobacz zdarzenia konfiguracji związane z konserwacją.
- Aby dowiedzieć się, jak używać zdarzeń przed i po do włączania i wyłączania maszyn wirtualnych przy użyciu webhooków, zobacz tutaj.
- Aby dowiedzieć się, jak używać zdarzeń przed i po do włączania i wyłączania maszyn wirtualnych przy użyciu usługi Azure Functions, zobacz tutaj.