使用 PowerShell 订阅资源组的事件并筛选出资源
此脚本创建资源组事件的事件网格订阅。 它使用筛选器,只获取资源组中指定资源的事件。
如果没有 Azure 订阅,可在开始前创建一个试用帐户。
示例脚本 - 稳定版
注意
建议使用 Azure Az PowerShell 模块与 Azure 交互。 若要开始,请参阅安装 Azure PowerShell。 若要了解如何迁移到 Az PowerShell 模块,请参阅 将 Azure PowerShell 从 AzureRM 迁移到 Az。
# Provide an endpoint for handling the events. Must be formatted "https://your-endpoint-URL"
$myEndpoint = "<your-endpoint-URL>"
# Provide the name of the resource group to create. It will contain the network security group.
# You will subscribe to events for this resource group.
$myResourceGroup = "<resource-group-name>"
# Provide a name for the network security group to create.
$nsgName = "<your-nsg-name>"
# Create the resource group
New-AzResourceGroup -Name $myResourceGroup -Location chinanorth2
# Create a network security group. You will filter events to only those that are related to this resource.
New-AzNetworkSecurityGroup -Name $nsgName -ResourceGroupName $myResourceGroup -Location chinanorth2
# Get the resource ID to filter events. The name of the network security group must not be the same as the other resource names.
$resourceId = (Get-AzResource -ResourceName $nsgName -ResourceGroupName $myResourceGroup).ResourceId
# Subscribe to the resource group. Provide the name of the resource group you want to subscribe to.
New-AzEventGridSubscription `
-Endpoint $myEndpoint `
-EventSubscriptionName demoSubscriptionToResourceGroup `
-ResourceGroupName $myResourceGroup `
-SubjectBeginsWith $resourceId
示例脚本 - 预览模块
重要
使用 PowerShell 的 Azure 功能必须已安装 AzureRM
模块。 该模块是旧模块,仅适用于 Windows PowerShell 5.1,它不再接收新功能。
针对相同版本的 PowerShell 进行安装时,Az
和 AzureRM
模块不兼容。
如果需要两个版本,请执行以下操作:
- 在 PowerShell 5.1 会话中卸载 Az 模块。
- 在 PowerShell 5.1 会话中安装 AzureRM 模块。
- 下载并安装 PowerShell Core 6.x 或更高版本。
- 在 PowerShell Core 会话中安装 Az 模块。
预览示例脚本需要事件网格模块。 若要安装,请运行 Install-Module -Name AzureRM.EventGrid -AllowPrerelease -Force -Repository PSGallery
# You must have the latest version of the Event Grid PowerShell module.
# To install:
# Install-Module -Name AzureRM.EventGrid -AllowPrerelease -Force -Repository PSGallery
# Provide an endpoint for handling the events. Must be formatted "https://your-endpoint-URL"
$myEndpoint = "<your-endpoint-URL>"
# Provide the name of the custom topic to create
$topicName = "<your-topic-name>"
# Provide the name of the resource group to create. It will contain the custom topic.
$myResourceGroup= "<resource-group-name>"
# Create the resource group
New-AzResourceGroup -Name $myResourceGroup -Location chinanorth2
# Create custom topic
New-AzEventGridTopic -ResourceGroupName $myResourceGroup -Location chinanorth2 -Name $topicName
# Get resource ID of custom topic
$topicid = (Get-AzEventGridTopic -ResourceGroupName $myResourceGroup -Name $topicName).Id
# Set the operator type, field and values for the filtering
$AdvFilter1=@{operator="StringIn"; key="Data.color"; Values=@('blue', 'red', 'green')}
# Subscribe to the custom topic. Filter based on a value in the event data.
New-AzEventGridSubscription `
-ResourceId $topicid `
-EventSubscriptionName demoSubWithFilter `
-Endpoint $myEndpoint `
-AdvancedFilter @($AdvFilter1)
脚本说明
此脚本使用以下命令创建事件订阅。 表中的每条命令链接到特定于命令的文档。
命令 | 说明 |
---|---|
New-AzEventGridSubscription | 创建事件网格订阅。 |
后续步骤
- 有关托管应用程序的简介,请参阅 Azure 托管应用程序概述。
- 有关 PowerShell 的详细信息,请参阅 Azure PowerShell 文档。