Azure Event Grid是一个托管事件路由平台,使我们能够实时响应Azure中托管的应用程序或拥有的任何Azure资源中发生的更改。Event Grid处理来自Azure服务的内置Azure事件以及来自应用程序的自定义事件,并实时发布它们。它可以每秒动态扩展和处理数百万个事件,Azure为生产工作负载提供99.99 SLA

clip_image002

Event Grid收到事件后,可通过事件处理程序(如Azure自动化,事件中心,Azure功能,Azure逻辑应用程序或自定义Web挂钩)促进程序操作的触发。

准备Azure Runbook账户:

点击“新建”—“管理工具”—“自动化”:

clip_image004

输入“自动化账户名称”及”资源组名称”,如下图所示,点击创建:

clip_image006

创建完成如下图所示:

clip_image008

点击“模块”—“更新Azure模块”:

clip_image010

点击“是”:

clip_image012

点击“模块库”,搜索“AzureRM.Tags”,点击搜索结果:

clip_image014

点击“导入”:

clip_image016

导入成功,如下图所示:

clip_image018

将Event Grid导入Runbook

选择我们刚刚创建自动化账户,点击”Runbook”—“浏览库”:

clip_image020

搜索“Event grid”,然后点击“Integrating Azure Automation with Event grid”:

clip_image022

点击导入,名称保持默认:

clip_image024

导入完成,如下图所示:

clip_image026

点击“编辑”:

clip_image028

将第74行替换成如下所示:

Update-AzureRmVM -ResourceGroupName $VMResourceGroup -VM $VM -Tag $Tag | Write-Verbose

clip_image030

替换完成,点击“发布”:

clip_image032

创建Microsoft Teams webhook

在Microsoft Teams中,点击“更多选项”—“应用商店”—“连接器”:

clip_image034

搜索“Incoming Webhook“:

clip_image036

设置将其添加到AzureTeam团队,点击安装:

clip_image038

点击“设置“:

clip_image040

设置名称,点击确定:

clip_image042

记录URL然后点击完成:

clip_image044

添加完成如下图所示:

clip_image046

为Runbook创建一个Webhook

打开“Watch-VMWrite“ Runbook,点击“Add Webhook”:

clip_image048

输入”WatchVMEventGrid”作为名称。将URL复制到剪贴板,并保存它:

clip_image050

选择“配置参数并运行设置”,然后设置“CHANNELURL”为Microsoft Teams webhook URL:

clip_image052

配置完成如下图所示:

clip_image054

创建Event Grid订阅

在自动化账户点击“Event grid“,点击创建:

clip_image056

在创建事件订阅选项卡进行如下图所示设置:

l 名称:AzureAutomation

l 主题类型:选择“ Azure订阅”。

l 取消选中“订阅所有事件类型”复选框。

l 定义的事件类型:取消选中“资源写入成功”以外的所有选项。

l 终结点类型:Webhook。

单击“ 选择端点”:

clip_image058

在订阅者终结点处设置为Watch-VMWrite Runbook创建的webhook URL。

clip_image060

设置完成如下图所示,点击创建:

clip_image062

测试配置是否生效

创建测试虚拟:

clip_image064

创建完成如下图所示:

clip_image066

此时在Microsoft Teams上回收到虚拟机创建完成的信息:

clip_image068

注意:

上述方法是针对整个订阅级别的,若要针对某个具体的资源组可以使用如下方式:

在Filters下,输入要查找创建的新VM的订阅和资源组,如下所示:

/subscriptions/<subscription-id>/resourcegroups/<resource-group-name>/providers/Microsoft.Compute/virtualMachines

clip_image070