-
Notifications
You must be signed in to change notification settings - Fork 61
/
Copy path18_object_replication.ps1
70 lines (60 loc) · 2.85 KB
/
18_object_replication.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
#Sign in to your Azure account
Connect-AzAccount
#Set variables
$rgName = "ctt-prod-sta-rg"
$srcAccountName = "cttprodsta2025"
$destAccountName = "cttsta4625"
$srcContainerName1 = "source-container1"
$destContainerName1 = "dest-container1"
$srcContainerName2 = "source-container2"
$destContainerName2 = "dest-container2"
#Enable blob versioning and change feed on the source account
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-EnableChangeFeed $true `
-IsVersioningEnabled $true
#Enable blob versioning on the destination account
Update-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $destAccountName `
-IsVersioningEnabled $true
#List the service properties for both accounts
Get-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName
Get-AzStorageBlobServiceProperty -ResourceGroupName $rgName `
-StorageAccountName $destAccountName
#Create containers in the source and destination accounts
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $srcAccountName |
New-AzStorageContainer $srcContainerName1
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $destAccountName |
New-AzStorageContainer $destContainerName1
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $srcAccountName |
New-AzStorageContainer $srcContainerName2
Get-AzStorageAccount -ResourceGroupName $rgName -StorageAccountName $destAccountName |
New-AzStorageContainer $destContainerName2
#Define replication rules for each container
$rule1 = New-AzStorageObjectReplicationPolicyRule -SourceContainer $srcContainerName1 `
-DestinationContainer $destContainerName1 `
-PrefixMatch b
$rule2 = New-AzStorageObjectReplicationPolicyRule -SourceContainer $srcContainerName2 `
-DestinationContainer $destContainerName2 `
-PrefixMatch b,abc,dd
#Infos about the source storage account
$srcAccountName = Get-AzStorageAccount -ResourceGroupName $rgName -AccountName $srcAccountName
#Create the replication policy on the destination account
$destPolicy = Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-AccountName $destAccountName `
-PolicyId default `
-SourceAccount $srcAccountName.Id `
-Rule $rule1,$rule2
#Create the same policy on the source account
$srcAccountName = "cttprodsta2025"
Set-AzStorageObjectReplicationPolicy -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName `
-InputObject $destPolicy
#Check the Replication-Status
$ctxSrc = (Get-AzStorageAccount -ResourceGroupName $rgName `
-StorageAccountName $srcAccountName).Context
$blobSrc = Get-AzStorageBlob -Container $srcContainerName1 `
-Context $ctxSrc `
-Blob "bdemoscript.ps1"
$blobSrc.BlobProperties.ObjectReplicationSourceProperties[0].Rules[0].ReplicationStatus