使用Azure Runbook 發送消息到Azure Storage Queue

客戶需要定時發送資訊到Azure Storage Queue,所以嘗試使用Azure Runbook實現這個需求。

首先新增一個Azure Automation Account的資源。

 

因為要使用Az.storage模組發送消息到Queue, 但是這個模組並沒有包含在默認模組中,所以要手動添加一下。選擇 Shared resources 下面的 Modules gallery.

 

因為Az.Storage依賴Az.Accounts模組,所以我們先搜索Az.Accounts, 找到後,雙擊打開新窗口,點擊Import。導入大概需要幾分鐘,導入成功後,我們重複同樣的步驟添加Az.Storage模組。

 

 都添加成功後,我們就可以添加我們的Runbook了

從左邊的菜單欄選擇Runbooks,然後Create a runbook, 輸入名字,選擇類型Powershell

 

 具體的powershell腳本如下

$connectionName = "AzureRunAsConnection"

$servicePrincipalConnection=Get-AutomationConnection -Name $connectionName 

Write-Output($servicePrincipalConnection.TenantId)
 
Connect
-AzAccount ` -ServicePrincipal ` -Tenant $servicePrincipalConnection.TenantId ` -ApplicationId $servicePrincipalConnection.ApplicationId ` -CertificateThumbprint $servicePrincipalConnection.CertificateThumbprint $storageAccount=Get-AzStorageAccount -ResourceGroupName "******" -StorageAccountName "********" #這裡輸入你自己的resource group名字和storage account的名字。 $ctx=$storageAccount.Context $queue=Get-AzStorageQueue -Name "test-spfx" -Context $ctx $queueMessage = [Microsoft.Azure.Storage.Queue.CloudQueueMessage]::new("This is message from runbook") $queue.CloudQueue.AddMessageAsync($QueueMessage) Write-Output ("Send message to queue.")

這裡的AzureRunAsConnection是使用的資源組默認樣例的參數,可以根據自己的實際需要修改或添加。具體位置是在Shared Resources下面的Connections

 

最後可以測試runbook,去storage account下面檢查,是否成功接收到消息。

Tags: