客户需要定时发送信息到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.")