Übung: Verwenden von „copy“ zum Reduzieren der Wiederholung
In dieser abschließenden Übung arbeiten Sie weiterhin mit Speicherkonten. Dieses Mal verwenden Sie das copy
-Konstrukt, um mehrere Speicherkonten aus einer einzelnen Definition bereitzustellen.
Mit dem Copy
-Konstrukt erhalten Sie einen einzelnen, zentralen Ort, den Sie aktualisieren müssen, wenn sich Ihre Anforderungen ändern.
Erstellen der ARM-Vorlage
Hier erstellen Sie eine ARM-Vorlage (Azure Resource Manager), die eine Speicherkontoressource definiert. Die Vorlage verwendet copy
, um ähnliche Versionen derselben Ressource so oft wie angegeben zu erstellen.
Erstellen Sie in Visual Studio Code eine Datei mit dem Namen copy.json in demselben Verzeichnis, das azuredeploy.json enthält.
Fügen Sie diesen Inhalt copy.json hinzu:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageCount": { "type": "int", "defaultValue": 1, "metadata": { "description": "the number of storage accounts copies being deployed" } }, "storageAccountName": { "type": "string", "defaultValue": "storage", "metadata": { "description": "the name of the storage account" } } }, "functions": [], "variables": {}, "resources": [ { "name": "[concat(parameters('storageAccountName'), copyIndex())]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": { "displayName": "storageaccount1" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "Premium_LRS", "tier": "Premium" }, "copy": { "name": "storagecopy", "count": "[parameters('storageCount')]" } } ], "outputs": {} }
Der Parameter storageCount
definiert die Anzahl der zu erstellenden Kopien.
Notieren Sie sich unter resources
die Speicherkontoressource. Um den Namen des Speicherkontos eindeutig zu machen, verwendet die Vorlage copyIndex()
, um den aktuellen Index an den Speicherkontonamen anzufügen.
Der Abschnitt copy
liest die Anzahl der Kopien, die zu erstellen sind, aus dem Parameter storageCount
.
Bereitstellen der Vorlage
Hier stellen Sie die Vorlage wie bereits zuvor bereit. Mit dem Bereitstellungsschritt werden zwei ähnliche Speicherkonten bereitgestellt.
Erstellen Sie eine PowerShell-Variable, die den Namen des Speicherkontos enthält.
$STORAGE_ACCT_NAME="tailwindsa" + (Get-Random -Count 1)
Führen Sie den folgenden Befehl
New-AzResourceGroupDeployment
aus, um die Vorlage bereitzustellen:New-AzResourceGroupDeployment ` -TemplateFile "./copy.json" ` -storageAccountName $STORAGE_ACCT_NAME ` -storageCount 2
Hier legen Sie
storageCount
auf2
fest, um zwei Speicherkonten bereitzustellen.
Überprüfen der Bereitstellung
Obwohl die Ausgabe zeigt, dass zwei Speicherkonten erstellt wurden, führen Sie hier den Befehl Get-AzResource
aus, um sich auf die Ausgaberessourcen zu konzentrieren.
Führen Sie den folgenden Befehl Get-AzResource
aus, um sicherzustellen,dass die Ressourcen bereitgestellt wurden:
Get-AzResource -Name tailwindsa* -ResourceGroupName <rgn>resource group name</rgn> | Select-Object -Property Name,ResourceId
Das tailwindsa*
-Argument gibt an, dass nur die Bezeichner angezeigt werden, die mit dem Namenspräfix übereinstimmen, das Sie den Ressourcen zugewiesen haben.
Die Ausgabe sieht ungefähr wie folgt aus:
Name ResourceId
---- ----------
tailwindsa1852777810 /subscriptions/11112222-3333-4444-5555-1111222233334444/resourceGroups/<rgn>resoure group</rgn>/providers/Microsoft.Storage/storageAccount…
tailwindsa1852777811 /subscriptions/11112222-3333-4444-5555-1111222233334444/resourceGroups/<rgn>resoure group</rgn>/providers/Microsoft.Storage/storageAccount…
In diesem Beispiel:
- tailwindsa185277781 ist der Basisname, der für das Speicherkonto (
"tailwindsa" + Get-Random -Count 1
) generiert wurde. - tailwindsa1852777810 (der Basisname plus „0“) ist das erste Speicherkonto.
- tailwindsa1852777811 (der Basisname plus „1“) ist das zweite Speicherkonto.
Gut gemacht! Wenn sich Ihre Anforderungen ändern (z. B. die benötigte Leistungsstufe), können Sie Ihre Ressourcendefinitionen von einem einzigen Speicherort aus ändern.
Bereinigung
Die Sandbox bereinigt Ihre Ressourcen automatisch, wenn Sie dieses Modul abgeschlossen haben.
Wenn Sie in Ihrem eigenen Abonnement arbeiten, sollten Sie am Ende eines Projekts prüfen, ob Sie die Ressourcen, die Sie erstellt haben, noch benötigen. Ressourcen, die Sie weiterhin ausführen, können Sie Geld kosten. Sie können einzelne Ressourcen oder die gesamte Ressourcengruppe mit allen darin enthaltenen Ressourcen löschen.
Erstellen der ARM-Vorlage
Hier erstellen Sie eine ARM-Vorlage (Azure Resource Manager), die eine Speicherkontoressource definiert. Die Vorlage verwendet copy
, um ähnliche Versionen derselben Ressource so oft wie angegeben zu erstellen.
Erstellen Sie in Visual Studio Code eine Datei mit dem Namen copy.json in demselben Verzeichnis, das azuredeploy.json enthält.
Fügen Sie diesen Inhalt copy.json hinzu:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageCount": { "type": "int", "defaultValue": 1, "metadata": { "description": "the number of storage accounts being deployed" } }, "storageAccountName": { "type": "string", "defaultValue": "storage", "metadata": { "description": "the name of the storage account" } } }, "functions": [], "variables": {}, "resources": [ { "name": "[concat(parameters('storageAccountName'), copyIndex())]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": { "displayName": "storageaccount1" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "Premium_LRS", "tier": "Premium" }, "copy": { "name": "storagecopy", "count": "[parameters('storageCount')]" } } ], "outputs": {} }
Der Parameter storageCount
definiert die Anzahl der zu erstellenden Kopien.
Notieren Sie sich unter resources
die Speicherkontoressource. Um den Namen des Speicherkontos eindeutig zu machen, verwendet die Vorlage copyIndex()
, um den aktuellen Index an den Speicherkontonamen anzufügen.
Der Abschnitt copy
liest die Anzahl der Kopien, die zu erstellen sind, aus dem Parameter storageCount
.
Bereitstellen der Vorlage
Hier stellen Sie die Vorlage wie bereits zuvor bereit. Mit dem Bereitstellungsschritt werden zwei ähnliche Speicherkonten bereitgestellt.
Erstellen Sie eine Bash-Variable, die den Namen des Speicherkontos enthält.
STORAGE_ACCT_NAME=tailwindsa$RANDOM
Führen Sie den folgenden Befehl
az deployment group create
aus, um die Vorlage bereitzustellen:az deployment group create \ --template-file copy.json \ --parameters storageAccountName=$STORAGE_ACCT_NAME storageCount=2
Hier legen Sie
storageCount
auf2
fest, um zwei Speicherkonten bereitzustellen.
Überprüfen der Bereitstellung
Obwohl die Ausgabe zeigt, dass zwei Speicherkonten erstellt wurden, führen Sie hier den Befehl az deployment group show
aus, um sich auf die Ausgaberessourcen zu konzentrieren.
Führen Sie den folgenden Befehl az deployment group show
aus, um Details zur Bereitstellung anzuzeigen:
az deployment group show \
--name copy \
--query "properties.outputResources[].id" \
--output tsv
Das --query
-Argument gibt an, dass nur die Bezeichner aus den Ausgaberessourcen angezeigt werden sollen.
Die Ausgabe sieht ungefähr wie folgt aus:
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>resource group name</rgn>/providers/Microsoft.Storage/storageAccounts/tailwindsa9820
/subscriptions/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/resourceGroups/<rgn>resource group name</rgn>/providers/Microsoft.Storage/storageAccounts/tailwindsa9821
In diesem Beispiel:
- tailwindsa982 ist der Basisname, der für das Speicherkonto (
tailwindsa$RANDOM
) generiert wurde. - tailwindsa9820 (der Basisname plus „0“) ist das erste Speicherkonto.
- tailwindsa9821 (der Basisname plus „1“) ist das zweite Speicherkonto.
Gut gemacht! Wenn sich Ihre Anforderungen ändern (z. B. die benötigte Leistungsstufe), können Sie Ihre Ressourcendefinitionen von einem einzigen Speicherort aus ändern.
Bereinigung
Die Sandbox bereinigt Ihre Ressourcen automatisch, wenn Sie dieses Modul abgeschlossen haben.
Wenn Sie in Ihrem eigenen Abonnement arbeiten, sollten Sie am Ende eines Projekts prüfen, ob Sie die Ressourcen, die Sie erstellt haben, noch benötigen. Ressourcen, die Sie weiterhin ausführen, können Sie Geld kosten. Sie können einzelne Ressourcen oder die gesamte Ressourcengruppe mit allen darin enthaltenen Ressourcen löschen.