使用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下面檢查,是否成功接收到消息。