Samples/Example 01.ps1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
<########################################################
 
    Author: Trevor Sullivan <trevor@trevorsullivan.net>
    Website: https://trevorsullivan.net
    Twitter: https://twitter.com/pgeek86
 
########################################################>


#region Setup
### Import the PSAzureQueue module
# Import-Module -Name "C:\Users\TrevorSullivan\Documents\visual studio 2015\Projects\ClassLibrary1\bin\Debug\PSAzureQueue.dll";

### Install the module from the PowerShell Gallery
Install-Module -Name PSAzureQueue -Scope CurrentUser;

### Inspect commands in the module;
Get-Command -Module PSAzureQueue;
#endregion

#region Storage Account and Queue

### Authenticate to Microsoft Azure
$AzureUsername = 'trevor@trevorsullivan.net';
$AzureCredential = Get-Credential -Message 'Please enter your Microsoft Azure password.' -UserName $AzureUsername;
$null = Login-AzureRmAccount -Credential $AzureCredential;

### Specify the Storage Account that the Azure Storage Queue will be created in
$StorageAccount = @{
    ResourceGroupName = 'trevor';
    Name = 'trevorsullivan';
    };
$StorageKey = Get-AzureRmStorageAccountKey @StorageAccount;

### Create Storage Context (authentication for Azure Storage service)
$StorageContext = New-AzureStorageContext -StorageAccountName $StorageAccount.Name -StorageAccountKey $StorageKey.Key1;

### Create an Azure Storage Queue in the Azure Storage Account
$StorageQueue = @{
    Context = $StorageContext;
    Name = 'orchardtoys';
    };
if (!(Get-AzureStorageQueue @StorageQueue)) {
    New-AzureStorageQueue @StorageQueue;
}
#endregion

#region Get information about an Azure Storage Queue
$Queue = @{
    StorageAccountName = $StorageAccount.Name;
    StorageAccountKey = $StorageKey.Key1;
    Name = $StorageQueue.Name;
    Verbose = $true;
    }
Get-AzureStorageQueueInfo @Queue;
#endregion

#region Add some messages to the queue
if ((Read-Host -Prompt 'Add messages?') -eq 'y') {
    $QueueMessage = @{
        StorageAccountName = $StorageAccount.Name;
        StorageAccountKey = $StorageKey.Key1;
        Name = $StorageQueue.Name;
        Content = '';
        }

    foreach ($Process in (Get-Process)) {
        $QueueMessage.Content = $Process | ConvertTo-Json -Depth 1;
        New-AzureStorageQueueMessage @QueueMessage -Verbose;
    }
}
#endregion

#region Read messages off of the queue
if ((Read-Host -Prompt 'Get message?') -eq 'y') {
    $Queue = @{
        StorageAccountName = $StorageAccount.Name;
        StorageAccountKey = $StorageKey.Key1;
        Name = $StorageQueue.Name;
        Verbose = $true;
        }
    Get-AzureStorageQueueMessage @Queue
}
#endregion

#region Remove message from queue
if ((Read-Host -Prompt 'Get message?') -eq 'y') {
    $Queue = @{
        StorageAccountName = $StorageAccount.Name;
        StorageAccountKey = $StorageKey.Key1;
        Name = $StorageQueue.Name;
        Verbose = $true;
        }
    Get-AzureStorageQueueMessage @Queue | Remove-AzureStorageQueueMessage @Queue;
}
#endregion