使用Azure Runbook 傳送訊息到Azure Storage Queue

老王717發表於2021-01-26

客戶需要定時傳送資訊到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下面檢查,是否成功接收到訊息。

相關文章