Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练
admin
2023-04-08 15:23:15
0

下边回到我们的原始需求,来看下邮件开关机应该如何解决安全问题

 

分析这个需求,其实可以通过Microsoft Flow + Azure Automation的方式实现,首先O365邮箱接收邮件,然后通过Flow触发Azure Automation的runbook,在runbook里定义好我们需要执行的的任务,这样就可以实现我们需要的功能了

 

而身份验证实际上这里用的是我们之前讲的第二种,也就是service principal的方式,automation本身实际就是使用的service principal的方式,在Azure AD中实际上是可以看到automation注册的application的

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练



而Flow触发runbook,其实可以通过Flow来触发webhook,而automation其实是可以直接创建webhook的,这样其实就可以直接通过Flow触发Azure automation的webhook,我们的需求就可以实现了

 

关于Microsoft Flow,如果说有人了解的不是很多的话,可以这里先做一个简单的介绍

Microsoft Flow实际上是一个在线的workflow的service,可以在多个app之间执行一些自动化的任务,Flow对接的系统非常的多,比如Facebook,Twitter,Dynamic CRM,O365

 

目前来说,可以通过Flow对接超过200个服务,以下是其中的一部分



Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练



通过Flow,我们可以制定一些自动化的流程,举例来说,想实现在Yammer中有负面消息的时候就通知某个人呢,这种需求就可以通过Flow结合其他服务实现

 

首先通过Flow连接到Yammer->调用认知服务文本分析 API 检查情绪是否是负面的->如果是负面的,还可以调用Microsoft Translator将此文本翻译为别的语言->最后调用邮件发送消息通知


这就是一个标准的Flow了

 

对应到我们的需求,则比上边讲的还要简单一些

首先通过调用邮件,识别关键字,如果识别到关键字->触发webhook,在Automation中执行对应的runbook即可,想要复杂一点还可以加一些判断的逻辑,不同的关键字可以调用不同的webhook,实现不同的功能


我们这里准备实现一个简单的逻辑,在email的主题中注明是开机还是关机,然后根据关键字判断调用不同的webhook,想要调用webhook,当然首先这个webhook得存在才行,这里先在Azure automation中把webhook创建好


登陆Azure Portal后,找到automation,创建一个新的开机runbook

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练

Runbook 的类型选择普通的PowerShell即可

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


之后再依此创建一个关机的runbook,当然创建一个单一的runbook,然后根据参数控制开关机也是可以的

 

创建好之后,点击编辑

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


编写好对应的代码,点击publish

$connectionName = "AzureRunAsConnection"
$servicePrincipalConnection = Get-AutomationConnection -Name $connectionName

$logonAttempt = 0
$logonResult = $False

write-output "Login to Azure"
while(!($connectionResult) -And ($logonAttempt -le 10))
{
$LogonAttempt++
# Logging in to Azure...
$connectionResult = Connect-AzureRmAccount `
-ServicePrincipal `
-TenantId $servicePrincipalConnection.TenantId `
-ApplicationId $servicePrincipalConnection.ApplicationId `
-CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint

Start-Sleep -Seconds 1
}

write-output "Start auto VM"
import-module Azurerm
Start-AzureRmVM -ResourceGroupName mxyjpwest -Name automationvm


Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


之后,给这个runbook添加一个webhook

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练



注意,这里一定要保存好webhook的URL,因为这个URL创建好之后就不可见了,保存好之后创建webhook

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练



在webhook里已经可以看到了

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


之后按照这个方法,创建好关机的webhook,到此Azure方面的准备工作就完成了

 

之后开始准备Flow,Flow其实在Global Office 365的订阅里是包含的,所以直接登录到Global O365,然后选择Flow

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练



选择从空白模板创建

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练



这里选择收到新电子邮件时

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


选择好收件人,之后添加新步骤

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练



然后选择控制项->条件

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


按照以下条件设置

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


之后对如果是添加操作

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练

搜索webhook

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练



输入之前保存下来的webhook URL,注意一点要保证URL的安全,因为这个URL是包含token的,相当于直接就有执行操作的权限

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


之后设置一个并行的条件,判断邮件主题是否包含stop,然后添加对应stop的webhook

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


完成后整体是这样的

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练



之后发送一个邮件来进行一波测试

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


稍等片刻后,可以看到Flow已经被触发了!

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练



在automation中可以看到,runbook也在running了!

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练



片刻后,VM已经是stopped状态

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


在log里可以很清晰地看到有一条由automation账户触发的shutdown操作

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练



同理,再发一封start的邮件

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


之后可以看到VM已经自动start了,测试完成!

Azure实践之如何通过邮件实现Azure VM的开关机(二)—— Flow实战演练


当然,这个应用场景是非常简单得了,但是抛砖引玉,Flow和automation真的能创造出很多的场景!希望以后能有时间多研究研究


相关内容

热门资讯

玩家分享攻略“宝宝浙江开挂器?... 您好:宝宝浙江这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这款游戏...
终于懂了“杭麻圈真的有挂吗?”... 您好:杭麻圈这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9784099】很多玩家在这款游戏中...
终于了解“贪玩互娱真的有挂吗?... 网上科普关于“贪玩互娱有没有挂”话题很是火热,小编也是针对贪玩互娱作*弊开挂的方法以及开挂对应的知识...
【第一消息】“麦穗二八杠真的有... 网上科普关于“麦穗二八杠有没有挂”话题很是火热,小编也是针对麦穗二八杠作*弊开挂的方法以及开挂对应的...
今日重大发现“微乐四川麻将有挂... 有 亲,根据资深记者爆料微乐四川麻将是可以开挂的,确实有挂(咨询软件无需...
玩家分享攻略“TT语音是不是有... 有 亲,根据资深记者爆料TT语音是可以开挂的,确实有挂(咨询软件无需打开...
乘客飞机上突发疾病死亡,“空中... 作者 | 第一财经 钱童心封图 | 阿拉木图机场 (摄影:钱童心)12月26日新华社消息称,德国汉莎...
我来教教您“精品乐清麻将有没有... 家人们!今天小编来为大家解答精品乐清麻将透视挂怎么安装这个问题咨询软件客服徽9784099的挂在哪里...
终于懂了“玄龙炸/金/花怎么装... 您好:玄龙炸/金/花这款游戏可以开挂,确实是有挂的,需要了解加客服微信【9752949】很多玩家在这...
创意视频:小灵通漫游“未来之城... 在四十多年前出版的科幻小说《小灵通漫游未来》里,主人公小灵通在“未来市”的奇幻旅行中遇到了神奇的飘行...