Oefening: een voorbeeld van wijzigingen bekijken met de opdracht 'wat-als'
Notitie
De eerste keer dat u een sandbox activeert en de voorwaarden accepteert, is uw Microsoft-account gekoppeld aan een nieuwe Azure-directory met de naam Microsoft Learn Sandbox. U wordt ook toegevoegd aan een speciaal abonnement met de naam Concierge-abonnement.
Het ontwerpteam van uw speelgoedbedrijf heeft u gevraagd een sjabloon bij te werken waarmee een virtueel netwerk wordt geconfigureerd. In deze les gebruikt u wat-als om de effecten van het implementeren van de bijgewerkte sjabloon te controleren.
Tijdens het proces gaat u het volgende doen:
- Een eerste sjabloon maken en implementeren.
- Bereid u voor om een sjabloon te implementeren die iets anders is en gebruik de wat-als-bewerking om de verwachte wijzigingen te controleren.
- Gebruik een volledige implementatie om een lege sjabloon te implementeren en gebruik de wat-als-bewerking om de verwachte wijzigingen te controleren.
De oefening gebruikt de Azure Resource Manager Tools for Visual Studio Code. Zorg ervoor dat u deze extensie installeert in Visual Studio Code.
In deze oefening wordt de Bicep-extensie voor Visual Studio Code gebruikt. Zorg ervoor dat u deze extensie installeert in Visual Studio Code.
De beginsjabloon maken
U begint met een bestaande sjabloon die uw team heeft gebruikt. Met de sjabloon wordt het virtuele netwerk gemaakt.
Open Visual Studio Code.
Maak een nieuw bestand met de naam azuredeploy.json.
Sla het lege bestand op zodat Visual Studio Code de ARM-sjabloonhulpprogramma's laadt.
U kunt Bestand> selecteren of Ctrl+S selecteren in Windows (⌘+S in macOS). Vergeet niet waar u het bestand hebt opgeslagen. U kunt bijvoorbeeld een map met scripts maken om deze op te slaan in.
Kopieer de volgende code naar azuredeploy.json.
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": {}, "variables": {}, "resources": [ { "apiVersion": "2024-05-01", "type": "Microsoft.Network/virtualNetworks", "name": "vnet-001", "location": "[resourceGroup().location]", "tags": { "CostCenter": "12345", "Owner": "Team A" }, "properties": { "addressSpace": { "addressPrefixes": [ "10.0.0.0/16" ] }, "enableVmProtection": false, "enableDdosProtection": false, "subnets": [ { "name": "subnet001", "properties": { "addressPrefix": "10.0.0.0/24" } }, { "name": "subnet002", "properties": { "addressPrefix": "10.0.1.0/24" } } ] } } ] }
Sla de sjabloon op.
Open Visual Studio Code.
Maak een nieuw bestand met de naam main.bicep.
Sla het lege bestand op zodat Visual Studio Code de Bicep-hulpprogramma's laadt.
U kunt Bestand> selecteren of Ctrl+S selecteren in Windows (⌘+S in macOS). Vergeet niet waar u het bestand hebt opgeslagen. U kunt bijvoorbeeld een map met scripts maken om deze op te slaan in.
Kopieer de volgende code naar main.bicep.
param location string = resourceGroup().location resource vnet 'Microsoft.Network/virtualNetworks@2024-05-01' = { name: 'vnet-001' location: location tags: { CostCenter: '12345' Owner: 'Team A' } properties: { addressSpace: { addressPrefixes: [ '10.0.0.0/16' ] } enableVmProtection: false enableDdosProtection: false subnets: [ { name: 'subnet001' properties: { addressPrefix: '10.0.0.0/24' } } { name: 'subnet002' properties: { addressPrefix: '10.0.1.0/24' } } ] } }
Sla de sjabloon op.
De sjabloon implementeren in Azure
Als u deze sjabloon wilt implementeren in Azure, meldt u zich aan bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u Azure PowerShell hebt geïnstalleerd en meld u aan bij hetzelfde account dat de sandbox heeft geactiveerd.
Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
Als in het terminalvenster pwsh of powershell aan de rechterkant wordt weergegeven, betekent dit dat de juiste shell al is geopend. Als u aan de rechterkant een PowerShell-shellpictogram ziet, kunt u deze optie selecteren om de shell te starten.
Als een andere shell dan pwsh of powershell wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens PowerShell.
Ga in de terminal naar de map waarin u de sjabloon hebt opgeslagen. Als u uw sjabloon bijvoorbeeld hebt opgeslagen in de map sjablonen , kunt u deze opdracht gebruiken:
Set-Location -Path templates
Bicep CLI installeren
Als u Bicep wilt gebruiken vanuit Azure PowerShell, installeert u de Bicep CLI.
Aanmelden bij Azure met behulp van Azure PowerShell
Voer in de Visual Studio Code-terminal de volgende opdracht uit:
Connect-AzAccount
Er wordt een browser geopend, zodat u zich kunt aanmelden bij uw Azure-account. De browser kan op de achtergrond worden geopend.
Nadat u zich hebt aangemeld bij Azure, wordt in de terminal een lijst weergegeven met de abonnementen die aan dit account zijn gekoppeld. Als u de sandbox hebt geactiveerd, wordt een abonnement met de naam Concierge-abonnement weergegeven. Selecteer deze voor de rest van de oefening.
Als u meer dan één sandbox onlangs hebt gebruikt, kan in de terminal meer dan één exemplaar van Concierge-abonnement worden weergegeven. In dit geval gebruikt u de volgende twee stappen om er een in te stellen als het standaardabonnement.
Verkrijg de abonnements-id. Als u de volgende opdracht uitvoert, worden uw abonnementen en hun id's vermeld.
Concierge Subscription
Zoek en kopieer de id uit de tweede kolom. Het ziet er ongeveer als volgt uit:aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Wijzig uw actieve abonnement in Concierge-abonnement. Zorg ervoor dat u {Uw abonnements-id} vervangt door de id die u hebt gekopieerd.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
De standaardresourcegroep instellen
U kunt de standaardresourcegroep instellen en de parameter weglaten uit de rest van de Azure PowerShell-opdrachten in deze oefening. Stel deze standaardinstelling in op de resourcegroep die voor u is gemaakt in de sandbox-omgeving.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Als u deze sjabloon wilt implementeren in Azure, moet u zich aanmelden bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u de Azure CLI hebt geïnstalleerd en vergeet niet om u aan te melden met hetzelfde account dat u hebt gebruikt om de sandbox te activeren.
Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
Als in het terminalvenster bash aan de rechterkant wordt weergegeven, betekent dit dat de juiste shell al is geopend. Als u ook een bash-shellpictogram aan de rechterkant ziet, kunt u deze selecteren om de shell te starten.
Als een andere shell dan bash wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens Git Bash.
Ga in de terminal naar de map waarin u de sjabloon hebt opgeslagen. Als u de sjabloon bijvoorbeeld hebt opgeslagen in de map sjablonen , kunt u deze opdracht gebruiken:
cd templates
Bicep installeren
Voer de volgende opdracht uit om te controleren of u de nieuwste versie van Bicep hebt:
az bicep install && az bicep upgrade
Aanmelden bij Azure
Meld u in de Visual Studio Code-terminal aan bij Azure door de volgende opdracht uit te voeren:
az login
Meld u aan bij uw Azure-account in de browser die wordt geopend. In de Visual Studio Code-terminal wordt een lijst weergegeven met de abonnementen die aan dit account zijn gekoppeld. Selecteer het abonnement met de naam Concierge-abonnement.
Als u meer dan één sandbox onlangs hebt gebruikt, kan in de terminal meer dan één exemplaar van Concierge-abonnement worden weergegeven. In dit geval gebruikt u de volgende twee stappen om er een in te stellen als het standaardabonnement.
Verkrijg de id’s van het Concierge-abonnement.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Stel het standaardabonnement in met behulp van de abonnements-id. Vervang {uw abonnements-id} door de meest recente Concierge-abonnements-id.
az account set --subscription {your subscription ID}
De standaardresourcegroep instellen
Wanneer u de Azure CLI gebruikt, kunt u de standaardresourcegroep instellen en de parameter weglaten uit de rest van de Azure CLI-opdrachten in deze oefening. Stel de standaardinstelling in op de resourcegroep die voor u is gemaakt in de sandbox-omgeving.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Als u deze sjabloon wilt implementeren in Azure, meldt u zich aan bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u Azure PowerShell hebt geïnstalleerd en meld u aan bij hetzelfde account dat de sandbox heeft geactiveerd.
Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
Als in het terminalvenster pwsh of powershell aan de rechterkant wordt weergegeven, betekent dit dat de juiste shell al is geopend. Als u aan de rechterkant een PowerShell-shellpictogram ziet, kunt u deze optie selecteren om de shell te starten.
Als een andere shell dan pwsh of powershell wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens PowerShell.
Ga in de terminal naar de map waarin u de sjabloon hebt opgeslagen. Als u uw sjabloon bijvoorbeeld hebt opgeslagen in de map sjablonen , kunt u deze opdracht gebruiken:
Set-Location -Path templates
Aanmelden bij Azure met behulp van Azure PowerShell
Voer in de Visual Studio Code-terminal de volgende opdracht uit:
Connect-AzAccount
Er wordt een browser geopend, zodat u zich kunt aanmelden bij uw Azure-account. De browser kan op de achtergrond worden geopend.
Nadat u zich hebt aangemeld bij Azure, wordt in de terminal een lijst weergegeven met de abonnementen die aan dit account zijn gekoppeld. Als u de sandbox hebt geactiveerd, wordt een abonnement met de naam Concierge-abonnement weergegeven. Selecteer deze voor de rest van de oefening.
Als u meer dan één sandbox onlangs hebt gebruikt, kan in de terminal meer dan één exemplaar van Concierge-abonnement worden weergegeven. In dit geval gebruikt u de volgende twee stappen om er een in te stellen als het standaardabonnement.
Verkrijg de abonnements-id. Als u de volgende opdracht uitvoert, worden uw abonnementen en hun id's vermeld.
Concierge Subscription
Zoek en kopieer de id uit de tweede kolom. Het ziet er ongeveer als volgt uit:aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Wijzig uw actieve abonnement in Concierge-abonnement. Zorg ervoor dat u {Uw abonnements-id} vervangt door de id die u hebt gekopieerd.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
De standaardresourcegroep instellen
U kunt de standaardresourcegroep instellen en de parameter weglaten uit de rest van de Azure PowerShell-opdrachten in deze oefening. Stel deze standaardinstelling in op de resourcegroep die voor u is gemaakt in de sandbox-omgeving.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Als u deze sjabloon wilt implementeren in Azure, moet u zich aanmelden bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u de Azure CLI hebt geïnstalleerd en vergeet niet om u aan te melden met hetzelfde account dat u hebt gebruikt om de sandbox te activeren.
Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
Als in het terminalvenster bash aan de rechterkant wordt weergegeven, betekent dit dat de juiste shell al is geopend. Als u ook een bash-shellpictogram aan de rechterkant ziet, kunt u deze selecteren om de shell te starten.
Als een andere shell dan bash wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens Git Bash.
Ga in de terminal naar de map waarin u de sjabloon hebt opgeslagen. Als u de sjabloon bijvoorbeeld hebt opgeslagen in de map sjablonen , kunt u deze opdracht gebruiken:
cd templates
Aanmelden bij Azure
Meld u in de Visual Studio Code-terminal aan bij Azure door de volgende opdracht uit te voeren:
az login
Meld u aan bij uw Azure-account in de browser die wordt geopend. In de Visual Studio Code-terminal wordt een lijst weergegeven met de abonnementen die aan dit account zijn gekoppeld. Selecteer het abonnement met de naam Concierge-abonnement.
Als u meer dan één sandbox onlangs hebt gebruikt, kan in de terminal meer dan één exemplaar van Concierge-abonnement worden weergegeven. In dit geval gebruikt u de volgende twee stappen om er een in te stellen als het standaardabonnement.
Verkrijg de id’s van het Concierge-abonnement.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Stel het standaardabonnement in met behulp van de abonnements-id. Vervang {uw abonnements-id} door de meest recente Concierge-abonnements-id.
az account set --subscription {your subscription ID}
De standaardresourcegroep instellen
Wanneer u de Azure CLI gebruikt, kunt u de standaardresourcegroep instellen en de parameter weglaten uit de rest van de Azure CLI-opdrachten in deze oefening. Stel de standaardinstelling in op de resourcegroep die voor u is gemaakt in de sandbox-omgeving.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
De sjabloon implementeren met behulp van Azure PowerShell
Voer New-AzResourceGroupDeployment
uit om de sjabloon te implementeren.
New-AzResourceGroupDeployment -Name main -TemplateFile main.bicep
De tekst Wordt uitgevoerd... wordt weergegeven in de terminal. Het duurt een paar minuten voordat de implementatie is voltooid.
De sjabloon implementeren met behulp van Azure PowerShell
Voer New-AzResourceGroupDeployment
uit om de sjabloon te implementeren.
New-AzResourceGroupDeployment -Name main -TemplateFile azuredeploy.json
De tekst Wordt uitgevoerd... wordt weergegeven in de terminal. Het duurt een paar minuten voordat de implementatie is voltooid.
De sjabloon implementeren met de Azure CLI
Voer az deployment group create
uit om de sjabloon te implementeren.
az deployment group create --name main --template-file main.bicep
Het duurt een paar minuten voordat de implementatie is voltooid.
De sjabloon implementeren met de Azure CLI
Voer az deployment group create
uit om de sjabloon te implementeren.
az deployment group create --name main --template-file azuredeploy.json
Het duurt een paar minuten voordat de implementatie is voltooid.
De implementatie controleren
Als u wilt controleren of uw implementatie is gemaakt en naar Azure is verzonden, gaat u naar Azure Portal en controleert u of u zich in het sandbox-abonnement bevindt:
Selecteer een avatar in de bovenhoek van de pagina.
Selecteer Schakelen tussen directory's. In de lijst selecteert u de map Microsoft Learn Sandbox.
Selecteer Resourcegroepen.
Selecteer
[naam sandboxresourcegroep] .In Overzicht ziet u dat er één implementatie is voltooid.
Selecteer 1 geslaagd om de details van de implementatie te bekijken.
Selecteer de hoofdimplementatie om te zien welke resources zijn geïmplementeerd. In dit geval is er één virtueel netwerk (adresruimte 10.0.0.0/16) met twee subnetten geïmplementeerd.
Laat de pagina geopend in uw browser, zodat u de implementaties later opnieuw kunt controleren.
De sjabloon aanpassen
Verwijder in het azuredeploy.json-bestand in Visual Studio Code de tag met de naam
Owner
en de bijbehorende waarde. Nadat u klaar bent, ziet detags
eigenschap van het virtuele netwerk er als volgt uit:"tags": { "CostCenter": "12345" },
Werk de
addressPrefixes
wijziging/16
bij naar/15
. Nadat u klaar bent, ziet deaddressSpace
eigenschap van het virtuele netwerk er als volgt uit:"addressSpace": { "addressPrefixes": [ "10.0.0.0/15" ] },
Verwijder het subnet met de naam
subnet001
. Zorg ervoor dat u het hele subnetobject verwijdert. Nadat u klaar bent, ziet desubnets
eigenschap van het virtuele netwerk er als volgt uit:"subnets": [ { "name": "subnet002", "properties": { "addressPrefix": "10.0.1.0/24" } } ]
Sla de sjabloon op.
Verwijder in het bestand main.bicep in Visual Studio Code de tag met de naam
Owner
en de bijbehorende waarde. Nadat u klaar bent, ziet detags
eigenschap van het virtuele netwerk er als volgt uit:tags: { CostCenter: '12345' }
Werk het
addressPrefixes
bestand bij om het/16
te wijzigen in/15
. Nadat u klaar bent, ziet deaddressSpace
eigenschap van het virtuele netwerk er als volgt uit:addressSpace: { addressPrefixes: [ '10.0.0.0/15' ] }
Verwijder het subnet met de naam
subnet001
. Zorg ervoor dat u het hele subnetobject verwijdert. Nadat u klaar bent, ziet desubnets
eigenschap van het virtuele netwerk er als volgt uit:subnets: [ { name: 'subnet002' properties: { addressPrefix: '10.0.1.0/24' } } ]
Sla de sjabloon op.
Voer de what-if-opdracht uit met de gewijzigde sjabloon
Voer New-AzResourceGroupDeployment
uit met de -WhatIf
-markering om de wat-als-bewerking uit te voeren.
New-AzResourceGroupDeployment `
-Name main `
-WhatIf `
-TemplateFile main.bicep
Voer New-AzResourceGroupDeployment
uit met de -WhatIf
-markering om de wat-als-bewerking uit te voeren.
New-AzResourceGroupDeployment `
-Name main `
-WhatIf `
-TemplateFile azuredeploy.json
Voer az deployment group what-if
deze opdracht uit om de wat-als-bewerking uit te voeren:
az deployment group what-if \
--template-file main.bicep
Voer az deployment group what-if
deze opdracht uit om de wat-als-bewerking uit te voeren:
az deployment group what-if \
--template-file azuredeploy.json
De wat-als-uitvoer is vergelijkbaar met de volgende uitvoer:
U ziet dat het resultaat een kleurcode heeft, naast een voorvoegsel:
- Paars en ~ voor wijzigingen
- Groen en + voor nieuwe resources die moeten worden gemaakt
- Oranje en - voor verwijderingen
De resources in de sjabloon verwijderen
Werk het azuredeploy.json-bestand in Visual Studio Code bij en verwijder alle inhoud van de
resources
matrix. Wanneer u klaar bent, ziet uw sjabloon er als volgt uit:{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "resources": [ ] }
Sla de sjabloon op.
Verwijder in het bestand main.bicep in Visual Studio Code alle inhoud van het bestand, maar verwijder het bestand zelf niet.
Sla de sjabloon op.
Implementeren met de volledige modus en de bevestigingsoptie
In de volgende stappen implementeert u een lege sjabloon voor uw bestaande omgeving.
Waarschuwing
Als u dit in de praktijk doet, verwijdert u alles wat er in de cloud staat. De volgende code is interessant als een intellectueel experiment, maar wees voorzichtig met het gebruik van deze modus. Gebruik op zijn minst de -Confirm
-markering zodat u de bewerking kunt stoppen als de voorgestelde wijzigingen u niet bevallen.
Waarschuwing
Als u dit in de praktijk doet, verwijdert u alles wat er in de cloud staat. De volgende code is interessant als een intellectueel experiment, maar wees voorzichtig met het gebruik van deze modus. Gebruik op zijn minst de --confirm-with-what-if
-markering zodat u de bewerking kunt stoppen als de voorgestelde wijzigingen u niet bevallen.
Voer
New-AzResourceGroupDeployment
deze uit met de-Mode Complete
vlag om de implementatie uit te voeren in de volledige modus:New-AzResourceGroupDeployment ` -Name main ` -Mode Complete ` -Confirm ` -TemplateFile main.bicep
Uw uitvoer ziet er ongeveer als volgt uit:
Zoals u ziet, is de laatste regel van de uitvoer een bevestiging. U wordt gevraagd y of n te selecteren om verder te gaan.
Voer voor [A] Ja op Alles A in om de implementatie uit te voeren en uw omgeving op te schonen.
Voer
New-AzResourceGroupDeployment
deze uit met de-Mode Complete
vlag om de implementatie uit te voeren in de volledige modus:New-AzResourceGroupDeployment ` -Name main ` -Mode Complete ` -Confirm ` -TemplateFile azuredeploy.json
Uw uitvoer ziet er ongeveer als volgt uit:
Zoals u ziet, is de laatste regel van de uitvoer een bevestiging. U wordt gevraagd y of n te selecteren om verder te gaan.
Voer voor [A] Ja op Alles A in om de implementatie uit te voeren en uw omgeving op te schonen.
Voer
az deployment group create
uit met de markering--mode Complete
om een implementatie te maken in de volledige modus:az deployment group create \ --name main \ --mode Complete \ --confirm-with-what-if \ --template-file main.bicep
Uw uitvoer ziet er ongeveer als volgt uit:
Zoals u ziet, is de laatste regel van de uitvoer een bevestiging. U wordt gevraagd y of n te selecteren om verder te gaan.
Voer y (voor ja) in om de implementatie uit te voeren en uw omgeving op te schonen.
Voer
az deployment group create
uit met de markering--mode Complete
om een implementatie te maken in de volledige modus:az deployment group create \ --name main \ --mode Complete \ --confirm-with-what-if \ --template-file azuredeploy.json
Uw uitvoer ziet er ongeveer als volgt uit:
Zoals u ziet, is de laatste regel van de uitvoer een bevestiging. U wordt gevraagd y of n te selecteren om verder te gaan.
Voer y (voor ja) in om de implementatie uit te voeren en uw omgeving op te schonen.
De implementatie controleren
Ga terug naar de geopende browser die u eerder hebt gebruikt. Controleer of het virtuele netwerk er niet meer is, zoals in deze schermopname: