溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Azure實踐之如何通過郵件實現Azure VM的開關機(二)—— Flow實戰演練

發布時間:2020-08-06 06:04:13 來源:網絡 閱讀:3486 作者:mxy00000 欄目:云計算

下邊回到我們的原始需求,來看下郵件開關機應該如何解決安全問題

 

分析這個需求,其實可以通過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真的能創造出很多的場景!希望以后能有時間多研究研究


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女