Azure リソース通知 - 正常性リソースのシステム トピック (プレビュー) によって発生したイベントをサブスクライブする
- [アーティクル]
-
-
この記事では、「Azure リソース通知 - 正常性リソース」で公開されたイベントをサブスクライブするために必要な手順について説明します。 これらのイベントの詳細については、Azure リソース通知 - 正常性リソース イベントに関するトピックを参照してください。
システム トピックを作成する Azure サブスクリプションにアカウントを設定します。
az account set –s AZURESUBSCRIPTIONID
az eventgrid system-topic create
コマンドを使用して、microsoft.resourcenotifications.healthresources
タイプのシステム トピックを作成します。
az eventgrid system-topic create --name SYSTEMTOPICNAME --resource-group RESOURCEGROUPNAME --source /subscriptions/AZURESUBSCRIPTIONID --topic-type microsoft.resourcenotifications.healthresources --location Global
システム トピックを作成する Azure サブスクリプションにアカウントを設定します。
Set-AzContext -Subscription AZURESUBSCRIPTIONID
New-AzEventGridSystemTopic コマンドを使用して、microsoft.resourcenotifications.healthresources
タイプのシステム トピックを作成します。
New-AzEventGridSystemTopic -name SYSTEMTOPICNAME -resourcegroup RESOURCEGROUPNAME -source /subscriptions/AZURESUBSCRIPTIONID -topictype microsoft.resourcenotifications.healthresources -location global
Azure Portal にサインインします。
検索バーに「Event Grid システム トピック」と入力し、ドロップダウン リストからトピックを選択します。
[Event Grid システム トピック] ページのツールバーで [+作成] を選択します。
[Event Grid システム トピックの作成] ページの [トピックの種類] で [Azure リソース通知 - 正常性イベント] を選択します。
システム トピックを作成するリソース グループを作成します。
システム トピックの名前を入力します。
[確認と作成] を選択します
[確認および作成] ページで、 [作成] を選択します。
正常にデプロイが完了したページで、[リソースに移動] を選択し、システム トピックのページに移動します。 このページには、システム トピックに関する詳細が表示されます。
az eventgrid system-topic event-subscription create
コマンドを使用して、上記のトピックに対応するイベント サブスクリプションを作成します。
次のサンプル コマンドでは、AvailabilityStatusChanged イベントのイベント サブスクリプションを作成します。
az eventgrid system-topic event-subscription create --name EVENTSUBSCRIPTIONNAME --resource-group RESOURCEGROUPNAME --system-topic-name SYSTEMTOPICNAME –included-event-types Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged --endpoint /subscriptions/AZURESUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.EventHub/namespaces/MYEVENTHUBSNAMESPACE/eventhubs/MYEVENTHUB --endpoint-type eventhub
次のサンプル コマンドでは、ResourceAnnotated イベントのイベント サブスクリプションを作成します。
az eventgrid system-topic event-subscription create --name EVENTSUBSCRIPTIONNAME --resource-group RESOURCEGROUPNAME --system-topic-name SYSTEMTOPICNAME –included-event-types Microsoft.ResourceNotifications.HealthResources.ResourceAnnotated --endpoint /subscriptions/AZURESUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.EventHub/namespaces/MYEVENTHUBSNAMESPACE/eventhubs/MYEVENTHUB --endpoint-type eventhub
included-event-types
を指定しない場合、すべてのイベントの種類が既定で含まれます。
特定のリソースからイベントをフィルターするには、--subject-begins-with
パラメータを使用します。 この例では、指定したリソース グループ内のリソースに AvailabilityStatusChanged
イベントをサブスクライブする方法を示します。
az eventgrid system-topic event-subscription create --name EVENTSUBSCRIPTIONNAME --resource-group RESOURCEGROUPNAME --system-topic-name SYSTEMTOPICNAME –included-event-types Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged --endpoint /subscriptions/AZURESUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.EventHub/namespaces/MYEVENTHUBSNAMESPACE/eventhubs/MYEVENTHUB --endpoint-type eventhub --subject-begins-with /subscriptions/AZURESUBSCRIPTIONID/resourceGroups/SOURCERESOURCEGROUP/
New-AzEventGridSystemTopicEventSubscription コマンドを使用して、上記のトピックのイベント サブスクリプションを作成します。
次のサンプル コマンドでは、AvailabilityStatusChanged イベントのイベント サブスクリプションを作成します。
New-AzEventGridSystemTopicEventSubscription -EventSubscriptionName EVENTSUBSCRIPTIONNAME -ResourceGroupName RESOURCEGROUPNAME -SystemtopicName SYSTEMTOPICNAME -IncludedEventType Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged -Endpoint /subscriptions/AZURESUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.EventHub/namespaces/EVENTHUBSNAMESPACE/eventhubs/EVENTHUB -EndpointType eventhub
次のサンプル コマンドでは、ResourceAnnotated イベントのイベント サブスクリプションを作成します。
New-AzEventGridSystemTopicEventSubscription -EventSubscriptionName EVENTSUBSCRIPTIONNAME -ResourceGroupName RESOURCEGROUPNAME -SystemtopicName SYSTEMTOPICNAME -IncludedEventType Microsoft.ResourceNotifications.HealthResources.ResourceAnnotated -Endpoint /subscriptions/AZURESUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.EventHub/namespaces/EVENTHUBSNAMESPACE/eventhubs/EVENTHUB -EndpointType eventhub
IncludedEventType
を指定しない場合、すべてのイベントの種類が既定で含まれます。
特定のリソースからイベントをフィルターするには、-SubjectBeginsWith
パラメータを使用します。 この例では、指定したリソース グループ内のリソースで AvailabilityStatusChanged
イベントをサブスクライブする方法を示します。
New-AzEventGridSystemTopicEventSubscription -EventSubscriptionName EVENTSUBSCRIPTIONNAME -ResourceGroupName RESOURCEGROUPNAME -SystemtopicName SYSTEMTOPICNAME -IncludedEventType Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged -Endpoint /subscriptions/AZURESUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.EventHub/namespaces/EVENTHUBSNAMESPACE/eventhubs/EVENTHUB -EndpointType eventhub -SubjectBeginsWith /subscriptions/AZURESUBSCRIPTIONID/resourceGroups/SOURCERESOURCEGROUP/
[Event Grid システム トピック] ページのツールバーで [+ イベント サブスクリプション] を選択します。
[トピックの種類] 、 [ソース リソース] 、 [トピック名] が自動的に入力されていることを確認します。
イベント サブスクリプションの名前を入力します。
[イベントの種類のフィルター] で、[可用性状態の変更] や [注釈付きリソース] などのイベントを選択します。
エンドポイントの種類を選択します。
選択したエンドポイントの種類に基づいてイベント ハンドラーを構成します。 次の例では、Azure のイベント ハブが選択されています。
[フィルター] タブを選択し、件名のフィルター処理と高度なフィルター処理について指定します。 たとえば、特定のリソース グループ内のリソースでイベントをフィルター処理するには、次の手順に従います。
[件名のフィルタリングを有効にする] を選択します。
[件名のフィルター] セクションで、[件名の開始] にリソース グループの値を /subscriptions/{subscription-id}/resourceGroups/{resourceGroup-id}
の形式で指定します。
これで、 [作成] を選択し、イベント サブスクリプションを作成します。
イベント サブスクリプションとシステム トピックを削除する
イベント サブスクリプションを削除するには、Remove-AzEventGridSystemTopicEventSubscription
コマンドを使用します。 次に例を示します。
Remove-AzEventGridSystemTopicEventSubscription -EventSubscriptionName firstEventSubscription -ResourceGroupName sampletestrg -SystemTopicName arnSystemTopicHealth
システム トピックを削除するには、Remove-AzEventGridSystemTopic
コマンドを使用します。 次に例を示します。
Remove-AzEventGridSystemTopic -ResourceGroupName sampletestrg -Name arnsystemtopicHealth
- Azure portal にサインインします。
- 検索バーに「Event Grid システム トピック」と入力し、ENTER キーを押します。
- システム トピックを選択します。
- [Event Grid System Topics](Event Grid システム トピック) ページで、ツールバーの [削除] を選択します。
アクションを必要とするイベントにフィルターを適用できます。 迅速な軽減策のアクションを有効にするには、ほぼリアルタイムのアラートが重要です。 Azure によって開始された予定外のアクティビティにフィルターを適用することで、すぐに注意が必要なワークロード全体における予期しないアクティビティをすぐに認識できるようになります。 影響を通知するために、エンド ユーザーへの通信を再デプロイまたはトリガーする場合があります。
az eventgrid system-topic event-subscription create \
--name firstEventSubscription \
--resource-group sampletestrg \
--system-topic-name arnSystemTopicHealth
--included-event-types Microsoft.ResourceNotifications.HealthResources.ResourceAnnotated \
--endpoint /subscriptions/000000000-0000-0000-0000-000000000000/resourceGroups/sampletestrg/providers/Microsoft.EventHub/namespaces/testEventHub/eventhubs/ehforsystemtopicresources \
--endpoint-type evenhub \
--advanced-filter data.resourceInfo.properties.context StringEndsWith Platform Initiated \
--advanced-filter data.resourceInfo.properties.category StringEndsWith Unplanned
New-AzEventGridSystemTopicEventSubscription -EventSubscriptionName firstEventSubscription -ResourceGroupName sampletestrg -SystemtopicName arnSystemTopicHealth -IncludedEventType Microsoft.ResourceNotifications.HealthResources.ResourceAnnotated -Endpoint /subscriptions/000000000-0000-0000-0000-000000000000/resourceGroups/sampletestrg/providers/Microsoft.EventHub/namespaces/testEventHub/eventhubs/ehforsystemtopicresources -EndpointType eventhub -AdvancedFilter @(@{operator = "StringEndsWith"; key = "data.resourceInfo.properties.context" ; value ="Platform Initiated"}, @{operator = "StringEndsWith"; key = "data.resourceInfo.properties.category" ; value ="Unplanned"})
イベントの種類で [注釈付きリソース] を選択します。
イベント サブスクリプションの [フィルター] タブで、次の高度なフィルターを選択します。
- Key = data.resourceInfo.properties.context
- Operator = StringEndsWith
- Value = Platform Initiated
AND
- Key = data.resourceInfo.properties.category
- Operator = StringEndsWith
- Value = Unplanned
特定のターゲットの種類をスコープとする注釈をサブスクライブする
影響に対する注意や軽減策が必要なリソースの種類にフィルターを適用できるため、重要な作業に集中できます。 VM 内であっても、親または仮想マシン スケール セット全体の正常性が影響を受ける場合と、仮想マシン スケール セット内のインスタンスが影響を受ける場合にのみ注意すれば大丈夫です。 このフィルターを使用すると、ほぼリアルタイムのアラートが必要なリソースの種類を正確に絞り込めます。
az eventgrid system-topic event-subscription create \
--name firstEventSubscription \
--resource-group sampletestrg \
--system-topic-name arnSystemTopicHealth \
--included-event-types Microsoft.ResourceNotifications.HealthResources.ResourceAnnotated \
--endpoint/subscriptions/000000000-0000-0000-0000-0000000000000/resourceGroups/sampletestrg/providers/Microsoft.EventHub/namespaces/testEventHub/eventhubs/ehforsystemtopicresources \
--endpoint-type evenhub \
--advanced-filter data.resourceInfo.targetResourceType StringContains Microsoft.Compute/virtualMachines
New-AzEventGridSystemTopicEventSubscription -EventSubscriptionName firstEventSubscription -ResourceGroupName sampletestrg -SystemtopicName arnSystemTopicHealth -IncludedEventType Microsoft.ResourceNotifications.HealthResources.ResourceAnnotated -Endpoint /subscriptions/000000000-0000-0000-0000-000000000000/resourceGroups/sampletestrg/providers/Microsoft.EventHub/namespaces/testEventHub/eventhubs/ehforsystemtopicresources -EndpointType eventhub -AdvancedFilter @(@{operator = "StringContains"; key = "data.resourceInfo.properties.targetResourceType" ; value ="Microsoft.Compute/virtualMachines"})
イベント サブスクリプションの [フィルター] タブで、次の高度なフィルターを選択します。
Key = data.resourceInfo.properties.targetResourceType
Operator = String contains
Value = Microsoft.Compute/virtualMachines
この機能について質問またはフィードバックがある場合は、ご遠慮なく arnsupport@microsoft.com までお問い合わせください。
特定のイベントについて具体的なフィードバックを提供できるように、次の情報を提供してください。
- システム トピックの種類の名前
- 操作が実行された時点のおおよそのタイムスタンプ (UTC)
- 通知が生成されたベース リソース ID
- Azure portal でお使いのリソースに移動し、右端隅にある JSON ビューを選択します。 リソース ID は、JSON ビュー ページの最初のフィールドです。
- 予期されるイベントの種類
- 実行された操作 (たとえば、VM の起動または停止、ストレージ アカウントの作成など)
- 発生した問題の説明 (たとえば、VM は起動したが Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged イベントが生成されない、など)
- 可能であれば、実行された操作の関連付け ID を提供してください
遅延したイベント、または予期しないコンテンツを含むイベントの場合
- システム トピックの種類の名前
- 通知のすべての内容 (data.resourceInfo.properties を除く)
- 発生した問題と影響を受けたフィールド値の説明
このデータを共有する場合は、エンド ユーザーを特定できる情報を提供しないでください。
これらのイベントの詳細については、Azure リソース通知 - 正常性リソース イベントに関するトピックを参照してください。