Event Grid での Azure リソース管理イベントのサブスクライブ
- [アーティクル]
-
-
この記事では、Azure リソース通知 - リソースによって公開されたイベントをサブスクライブするために必要な手順について説明します。 これらのイベントの詳細については、Azure リソース通知 - リソース イベントに関する記事を参照してください。
リソース システム トピックを作成する
このセクションでは、microsoft.resourcenotifications.resources
型のシステム トピックを作成する方法について説明します。
システム トピックを作成する Azure サブスクリプションにアカウントを設定します。
az account set –s AZURESUBSCRIPTIONID
az eventgrid system-topic create
コマンドを使用して、microsoft.resourcenotifications.resources
タイプのシステム トピックを作成します。
az eventgrid system-topic create \
--name SYSTEMTOPICNAME \
--resource-group RESOURCEGROUPNAME \
--source /subscriptions/AZURESUBSCRIPTIONID \
--topic-type microsoft.resourcenotifications.resources \
--location Global
システム トピックを作成する Azure サブスクリプションにアカウントを設定します。
Set-AzContext -Subscription AZURESUBSCRIPTIONID
New-AzEventGridSystemTopic コマンドを使用して、microsoft.resourcenotifications.resources
タイプのシステム トピックを作成します。
New-AzEventGridSystemTopic -name SYSTEMTOPICNAME `
-resourcegroup RESOURCEGROUPNAME `
-source /subscriptions/AZURESUBSCRIPTIONID `
-topictype microsoft.resourcenotifications.resources `
-location global
Azure Portal にサインインします。
検索バーに「Event Grid システム トピック」と入力し、ドロップダウン リストからトピックを選択します。
[Event Grid システム トピックの作成] ページのツールバーで、[作成] を選択します。
[Event Grid システム トピックの作成] ページで、[トピックの種類] として [Azure Resource Management - プレビュー] を選択します。
システム トピックを作成するリソース グループを作成します。
システム トピックの名前を入力します。
[確認と作成] を選択します
[確認および作成] ページで、 [作成] を選択します。
正常にデプロイが完了したページで、[リソースに移動] を選択し、システム トピックのページに移動します。 このページには、システム トピックに関する詳細が表示されます。
イベントをサブスクライブする
az eventgrid system-topic event-subscription create
コマンドを使用して、上記のトピックに対応するイベント サブスクリプションを作成します。
次のサンプル コマンドを使用すると、CreatedOrUpdated イベントと Deleted イベントの両方に対してイベント サブスクリプションが作成されます。 included-event-types
を指定しない場合、すべてのイベントの種類が既定で含まれます。
az eventgrid system-topic event-subscription create \
--name EVENTSUBSCRIPTIONNAME \
--resource-group RESOURCEGROUPNAME \
--system-topic-name SYSTEMTOPICNAME \
–-included-event-types Microsoft.ResourceNotifications.Resources.CreatedOrUpdated, Microsoft.ResourceNotifications.Resources.Deleted \
--endpoint /subscriptions/AZURESUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.EventHub/namespaces/MYEVENTHUBSNAMESPACE/eventhubs/MYEVENTHUB \
--endpoint-type eventhub
New-AzEventGridSystemTopicEventSubscription コマンドを使用して、上記のトピックのイベント サブスクリプションを作成します。
次のサンプル コマンドを使用すると、CreatedOrUpdated イベントと Deleted イベントの両方に対してイベント サブスクリプションが作成されます。 IncludedEventType
を指定しない場合、すべてのイベントの種類が既定で含まれます。
New-AzEventGridSystemTopicEventSubscription -EventSubscriptionName EVENTSUBSCRIPTIONNAME `
-ResourceGroupName RESOURCEGROUPNAME `
-SystemtopicName SYSTEMTOPICNAME `
-IncludedEventType Microsoft.ResourceNotifications.Resources.CreatedOrUpdated, Microsoft.ResourceNotifications.Resources.Deleted `
-Endpoint /subscriptions/AZURESUBSCRIPTIONID/resourceGroups/RESOURCEGROUPNAME/providers/Microsoft.EventHub/namespaces/EVENTHUBSNAMESPACE/eventhubs/EVENTHUB `
-EndpointType eventhub
[Event Grid システム トピック] ページのツールバーで、[イベント サブスクリプション] を選択します。
[トピックの種類] 、 [ソース リソース] 、 [トピック名] が自動的に入力されていることを確認します。
イベント サブスクリプションの名前を入力します。
[イベントの種類のフィルター] で、イベント (例: CreatedOrUpdated、Deleted) を選びます。
エンドポイントの種類を選択します。
選択したエンドポイントの種類に基づいてイベント ハンドラーを構成します。 次の例では、Azure のイベント ハブが選択されています。
[フィルター] タブを選択し、件名のフィルター処理と高度なフィルター処理について指定します。 たとえば、特定のリソース グループ内のリソースでイベントをフィルター処理するには、次の手順に従います。
[件名のフィルタリングを有効にする] を選択します。
[件名のフィルター] セクションで、[件名の開始] にリソース グループの値を /subscriptions/{subscription-id}/resourceGroups/{resourceGroup-id}
の形式で指定します。
これで、 [作成] を選択し、イベント サブスクリプションを作成します。
イベント サブスクリプションとシステム トピックを削除する
イベント サブスクリプションを削除するには、az eventgrid system-topic event-subscription delete
コマンドを使用します。 次に例を示します。
az eventgrid system-topic event-subscription delete --name firstEventSubscription --resourcegroup sampletestrg --system-topic-name arnSystemTopicResources
システム トピックを削除するには、az eventgrid system-topic delete
コマンドを使用します。 次に例を示します。
az eventgrid system-topic delete --name arnSystemTopicResources --resource-group sampletestrg
イベント サブスクリプションを削除するには、Remove-AzEventGridSystemTopicEventSubscription
コマンドを使用します。 次に例を示します。
Remove-AzEventGridSystemTopicEventSubscription -EventSubscriptionName firstEventSubscription -ResourceGroupName sampletestrg -SystemTopicName arnSystemTopicResources
システム トピックを削除するには、Remove-AzEventGridSystemTopic
コマンドを使用します。 次に例を示します。
Remove-AzEventGridSystemTopic -ResourceGroupName sampletestrg -Name arnSystemTopicResources
- Azure portal にサインインします。
- 検索バーに「Event Grid システム トピック」と入力し、ENTER キーを押します。
- システム トピックを選択します。
- [Event Grid System Topics](Event Grid システム トピック) ページで、ツールバーの [削除] を選択します。
フィルター処理の例
Azure サブスクリプション内で仮想マシンの作成、更新、削除通知をサブスクライブする
このセクションでは、Azure サブスクリプション内で仮想マシンの作成、更新、削除通知のサブスクライブのフィルター処理の例を示します。
az eventgrid system-topic event-subscription create \
--name firstEventSubscription \
--resource-group sampletestrg \
--system-topic-name arnSystemTopicResources
--included-event-types Microsoft.ResourceNotifications.Resources.CreatedOrUpdated, Microsoft.ResourceNotifications.Resources.Deleted \
--endpoint /subscriptions/000000000-0000-0000-0000-000000000000/resourceGroups/sampletestrg/providers/Microsoft.EventHub/namespaces/testEventHub/eventhubs/ehforsystemtopicresources \
--endpoint-type evenhub \
--advanced-filter data.resourceInfo.type StringEndsWith virtualMachines
New-AzEventGridSystemTopicEventSubscription -EventSubscriptionName firstEventSubscription `
-ResourceGroupName sampletestrg `
-SystemtopicName arnSystemTopicResources `
-IncludedEventType Microsoft.ResourceNotifications.Resources.CreatedOrUpdated, Microsoft.ResourceNotifications.Resources.Deleted `
-Endpoint /subscriptions/000000000-0000-0000-0000-000000000000/resourceGroups/sampletestrg/providers/Microsoft.EventHub/namespaces/testEventHub/eventhubs/ehforsystemtopicresources `
-EndpointType eventhub `
-AdvancedFilter @(@{operator = "StringEndsWith"; key = "data.resourceInfo.type" ; value ="virtualMachines"})
CreatedOrUpdated イベントと Deleted イベントの種類を選択します。
イベント サブスクリプションの [フィルター] タブで、次の高度なフィルターを選択します。
Key = "data.resourceInfo.type"
Operator = "StringEndsWith"
Value = "virtualMachines"
特定のリソース グループによる VM の作成、更新、削除通知をサブスクライブする
az eventgrid system-topic event-subscription create \
--name firstEventSubscription \
--resource-group sampletestrg \
--system-topic-name arnSystemTopicResources \
--included-event-types Microsoft.ResourceNotifications.Resources.CreatedOrUpdated, Microsoft.ResourceNotifications.Resources.Deleted \
--endpoint/subscriptions/000000000-0000-0000-0000-0000000000000/resourceGroups/sampletestrg/providers/Microsoft.EventHub/namespaces/testEventHub/eventhubs/ehforsystemtopicresources \
--endpoint-type evenhub \
--subject-begins-with /subscription/{Azure subscription ID}/resourceGroups/<Resource group name>/
--advanced-filter data.resourceInfo.type StringEndsWith virtualMachines
New-AzEventGridSystemTopicEventSubscription -EventSubscriptionName firstEventSubscription `
-ResourceGroupName sampletestrg `
-SystemtopicName arnSystemTopicResources `
-IncludedEventType Microsoft.ResourceNotifications.Resources.CreatedOrUpdated, Microsoft.ResourceNotifications.Resources.Deleted `
-Endpoint /subscriptions/000000000-0000-0000-0000-000000000000/resourceGroups/sampletestrg/providers/Microsoft.EventHub/namespaces/testEventHub/eventhubs/ehforsystemtopicresources `
-EndpointType eventhub -AdvancedFilter @(@{operator = "StringEndsWith"; key = "data.resourceInfo.type" ; value ="virtualMachines"})
イベント サブスクリプションの [フィルター] タブで、件名のフィルター処理を有効にして、次の件名フィルターを使用します。
Subject begins with = /subscriptions/{subscription-id}/resourceGroups/{resourceGroup-id}
次に、次の高度なフィルターを選択します。
Key = "data.resourceInfo.type"
Operator = "String ends with"
Value = "virtualMachines"
サブスクリプション内の特定の場所での VM の作成および更新通知をサブスクライブする
az eventgrid system-topic event-subscription create \
--name firstEventSubscription \
--resource-group sampletestrg \
--system-topic-name arnSystemTopicResources \
--included-event-types Microsoft.ResourceNotifications.Resources.CreatedOrUpdated \
--endpoint/subscriptions/000000000-0000-0000-0000-0000000000000/resourceGroups/sampletestrg/providers/Microsoft.EventHub/namespaces/testEventHub/eventhubs/ehforsystemtopicresources \
--endpoint-type evenhub \
--subject-begins-with /subscription/{Azure subscription ID}/resourceGroups/<Resource group name>/
--advanced-filter data.resourceInfo.location StringIn eastus
–-advanced-filter data.resourceInfo.type StringEndsWith virtualMachines
New-AzEventGridSystemTopicEventSubscription -EventSubscriptionName firstEventSubscription `
-ResourceGroupName sampletestrg `
-SystemtopicName arnSystemTopicResources `
-IncludedEventType Microsoft.ResourceNotifications.Resources.CreatedOrUpdated, Microsoft.ResourceNotifications.Resources.Deleted `
-Endpoint /subscriptions/000000000-0000-0000-0000-000000000000/resourceGroups/sampletestrg/providers/Microsoft.EventHub/namespaces/testEventHub/eventhubs/ehforsystemtopicresources `
-EndpointType eventhub `
-AdvancedFilter @(@{operator = "StringIn"; key = "data.resourceInfo.location"; value ="eastus"}, @{operator = "StringEndsWith"; key = "data.resourceInfo.type" ; value ="virtualMachines"})
イベント サブスクリプションの [フィルター] タブで、件名のフィルター処理を有効にして、次の件名フィルターを使用します。
Subject begins with = /subscriptions/{subscription-id}/resourceGroups/{resourceGroup-id}
次に、次の高度なフィルターを選択します。
Key = "data.resourceInfo.location",
Operator = "String is in"
Value = "eastus"
AND
Key = "data.resourceInfo.type", Operator = "String ends with" Value = "virtualMachines"
この機能について質問またはフィードバックがある場合は、ご遠慮なく arnsupport@microsoft.com までお問い合わせください。
特定のイベントについての特定のフィードバックがさらに適切に処理されるように、次の情報を提供してください。
見つからないイベントの場合:
- システム トピックの種類の名前
- 操作が実行された時点のおおよそのタイムスタンプ (UTC)
- 通知が生成されたベース リソース ID
- Azure portal でリソースに移動し、右端にある JSON ビューを選択します。 リソース ID は、JSON ビュー ページの最初のフィールドです。
- 予期されるイベントの種類
- 実行された操作 (起動または停止した VM、作成されたストレージ アカウントなど)
- 発生した問題の説明 (VM は起動したが Microsoft.ResourceNotifications.HealthResources.AvailabilityStatusChanged イベントが生成されない、など)
- 可能であれば、実行された操作の関連付け ID を入力してください
遅延したコンテンツや予期しないコンテンツを含むイベントの場合
- システム トピックの種類の名前
- 通知のすべての内容 (data.resourceInfo.properties を除く)
- 発生した問題と影響を受けたフィールド値の説明
このデータを共有する際は、エンド ユーザーを特定できる情報を提供しないでください。
次のステップ
これらのイベントの詳細については、Azure リソース通知 - リソース イベントに関する記事を参照してください。