|
| 1 | +<# |
| 2 | +.SYNOPSIS |
| 3 | +Add the specified content to an Azure Storage Queue |
| 4 | +
|
| 5 | +.DESCRIPTION |
| 6 | +Add the specified content to an Azure Storage Queue |
| 7 | +
|
| 8 | +.PARAMETER ResourceGroupName |
| 9 | +Resource group of the storage account |
| 10 | +
|
| 11 | +.PARAMETER StorageAccountName |
| 12 | +Storage account name |
| 13 | +
|
| 14 | +.PARAMETER StorageQueueName |
| 15 | +Storage queue where the message should be added |
| 16 | +
|
| 17 | +.PARAMETER MessageContent |
| 18 | +Any message content that should be added to the queue. Can be blank. |
| 19 | +
|
| 20 | +VSTS Variable with the Value '{"Release Definition":"$(Release.DefinitionName)","Release Name":"$(Release.ReleaseName)"}' produces a JSON formatted message |
| 21 | +with information about the release definition and name that the script was run from. |
| 22 | +
|
| 23 | +.EXAMPLE |
| 24 | +
|
| 25 | +.\Add-AzureStorageQueueMessage.ps1 -ResourceGroupName resourcegroupname ` |
| 26 | + -StorageAccountName storageaccountname ` |
| 27 | + -StorageQueueName storagequeuename ` |
| 28 | + -MessageContent "{"Release Definition":"$(Release.DefinitionName)","Release Name":"$(Release.ReleaseName)"}" |
| 29 | +
|
| 30 | +#> |
| 31 | +[CmdletBinding()] |
| 32 | +Param( |
| 33 | + [Parameter(Mandatory = $true)] |
| 34 | + [String]$ResourceGroupName, |
| 35 | + [Parameter(Mandatory = $true)] |
| 36 | + [String]$StorageAccountName, |
| 37 | + [Parameter(Mandatory = $true)] |
| 38 | + [String]$StorageQueueName, |
| 39 | + [Parameter(Mandatory = $false)] |
| 40 | + [String]$MessageContent |
| 41 | +) |
| 42 | +try { |
| 43 | + |
| 44 | + # Get the Storage account key |
| 45 | + $StorageAccountKey = (Get-AzureRmStorageAccountKey -ResourceGroupName $($ResourceGroupName) -Name $($StorageAccountName)).Value[0] |
| 46 | + |
| 47 | + # Set the Storage context |
| 48 | + $Context = New-AzureStorageContext -StorageAccountName $($StorageAccountName) -StorageAccountKey $StorageAccountKey |
| 49 | + |
| 50 | + # Check whether the queue exists |
| 51 | + $Queue = Get-AzureStorageQueue -Name $($StorageQueueName) -Context $Context |
| 52 | + |
| 53 | + if (!$Queue) { |
| 54 | + Write-Host "Specified storage queue $($StorageQueueName) doesn't exist in storage account $($StorageAccountName)" |
| 55 | + } |
| 56 | + else { |
| 57 | + if ($PSBoundParameters.ContainsKey('MessageContent')) { |
| 58 | + Write-Host "Supplied message content: $($MessageContent)" |
| 59 | + } |
| 60 | + else { |
| 61 | + Write-Host "Setting empty MessageContent" |
| 62 | + $MessageContent = "" |
| 63 | + } |
| 64 | + Write-Host "Adding message to queue" |
| 65 | + $Queue.CloudQueue.AddMessage($MessageContent) |
| 66 | + } |
| 67 | +} |
| 68 | +catch { |
| 69 | + throw "$_" |
| 70 | +} |
0 commit comments