Ćwiczenie — podgląd zmian za pomocą polecenia analizy co-jeżeli
Uwaga
Po pierwszym aktywowaniu piaskownicy i zaakceptowaniu warunków twoje konto Microsoft jest skojarzone z nowym katalogiem platformy Azure o nazwie Microsoft Learn Sandbox. Dodano cię również do specjalnej subskrypcji o nazwie Subskrypcja Concierge.
Zespół projektowy w firmie z toy poprosił Cię o zaktualizowanie szablonu, który konfiguruje sieć wirtualną. W tej lekcji użyjesz analizy co-jeżeli, aby zweryfikować skutki wdrażania zaktualizowanego szablonu.
Podczas tego procesu wykonasz następujące czynności:
- Tworzenie i wdrażanie szablonu początkowego.
- Przygotuj się do wdrożenia szablonu, który jest nieco inny, i użyj operacji analizy warunkowej, aby przejrzeć oczekiwane zmiany.
- Użyj kompletnego wdrożenia, aby wdrożyć pusty szablon i użyć operacji analizy co-jeżeli, aby przejrzeć oczekiwane zmiany.
W tym ćwiczeniu używane są narzędzia usługi Azure Resource Manager dla programu Visual Studio Code. Pamiętaj, aby zainstalować to rozszerzenie w programie Visual Studio Code.
W tym ćwiczeniu jest używane rozszerzenie Bicep dla programu Visual Studio Code. Pamiętaj, aby zainstalować to rozszerzenie w programie Visual Studio Code.
Tworzenie szablonu początkowego
Zaczynasz od istniejącego szablonu, którego używa twój zespół. Szablon tworzy sieć wirtualną.
Otwórz Visual Studio Code.
Utwórz nowy plik o nazwie azuredeploy.json.
Zapisz pusty plik, aby program Visual Studio Code ładuje narzędzia szablonu usługi ARM.
Możesz wybrać pozycję Plik>Zapisz jako lub wybrać Ctrl+S w systemie Windows (⌘+S w systemie macOS). Pamiętaj, gdzie został zapisany plik. Na przykład możesz utworzyć folder scripts , aby go zapisać.
Skopiuj następujący kod do 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" } } ] } } ] }
Zapisz szablon.
Otwórz Visual Studio Code.
Utwórz nowy plik o nazwie main.bicep.
Zapisz pusty plik, aby program Visual Studio Code ładował narzędzia Bicep.
Możesz wybrać pozycję Plik>Zapisz jako lub wybrać Ctrl+S w systemie Windows (⌘+S w systemie macOS). Pamiętaj, gdzie został zapisany plik. Na przykład możesz utworzyć folder scripts , aby go zapisać.
Skopiuj następujący kod do pliku main.bicep.
resource vnet 'Microsoft.Network/virtualNetworks@2024-05-01' = { 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' } } ] } }
Zapisz szablon.
Wdrażanie szablonu na platformie Azure
Aby wdrożyć ten szablon na platformie Azure, zaloguj się do konta platformy Azure z poziomu terminalu programu Visual Studio Code. Upewnij się, że zainstalowano program Azure PowerShell i zaloguj się do tego samego konta, na którym aktywowano piaskownicę.
W menu Terminal wybierz polecenie New Terminal (Nowy terminal). Okno terminalu zwykle otwiera się w dolnej połowie ekranu.
Jeśli w oknie terminalu jest wyświetlany program pwsh lub powershell po prawej stronie, oznacza to, że prawidłowa powłoka jest już otwarta. Alternatywnie, jeśli po prawej stronie zostanie wyświetlona ikona powłoki programu PowerShell, możesz ją wybrać, aby uruchomić powłokę.
Jeśli zostanie wyświetlona powłoka inna niż pwsh lub powershell , wybierz strzałkę listy rozwijanej powłoki, a następnie wybierz pozycję PowerShell.
W terminalu przejdź do katalogu, w którym zapisano szablon. Jeśli na przykład szablon został zapisany w folderze templates , możesz użyć tego polecenia:
Set-Location -Path templates
Instalowanie interfejsu wiersza polecenia Bicep
Aby użyć aplikacji Bicep z poziomu programu Azure PowerShell, zainstaluj interfejs wiersza polecenia Bicep.
Logowanie się na platformie Azure przy użyciu programu Azure PowerShell
W terminalu programu Visual Studio Code uruchom następujące polecenie:
Connect-AzAccount
Zostanie otwarta przeglądarka umożliwiająca zalogowanie się do konta platformy Azure. Przeglądarka może zostać otwarta w tle.
Po zalogowaniu się na platformie Azure w terminalu zostanie wyświetlona lista subskrypcji skojarzonych z tym kontem. Jeśli aktywowano piaskownicę, zostanie wyświetlona subskrypcja o nazwie Subskrypcja Concierge. Wybierz go w pozostałej części ćwiczenia.
Jeśli ostatnio użyto więcej niż jednej piaskownicy, terminal może wyświetlić więcej niż jedno wystąpienie subskrypcji Concierge. W tym przypadku użyj dwóch następnych kroków, aby ustawić jedną jako domyślną subskrypcję.
Uzyskaj identyfikator subskrypcji. Uruchomienie następującego polecenia zawiera listę subskrypcji i ich identyfikatorów.
Concierge Subscription
Wyszukaj ciąg , a następnie skopiuj identyfikator z drugiej kolumny. Wygląda to mniej więcej tak:aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Zmień aktywną subskrypcję na Subskrypcja Concierge. Pamiętaj, aby zastąpić ciąg {Identyfikator subskrypcji} skopiowaną wartością.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Ustawianie domyślnej grupy zasobów
Możesz ustawić domyślną grupę zasobów i pominąć parametr z pozostałych poleceń programu Azure PowerShell w tym ćwiczeniu. Ustaw tę wartość domyślną na grupę zasobów utworzoną dla Ciebie w środowisku piaskownicy.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Aby wdrożyć ten szablon na platformie Azure, musisz zalogować się na konto platformy Azure z poziomu terminalu programu Visual Studio Code. Upewnij się, że zainstalowano interfejs wiersza polecenia platformy Azure i pamiętaj, aby zalogować się przy użyciu tego samego konta, które zostało użyte do aktywowania piaskownicy.
W menu Terminal wybierz polecenie New Terminal (Nowy terminal). Okno terminalu zwykle otwiera się w dolnej połowie ekranu.
Jeśli w oknie terminalu jest wyświetlana powłoka bash po prawej stronie, oznacza to, że prawidłowa powłoka jest już otwarta. Alternatywnie, jeśli po prawej stronie zostanie wyświetlona ikona powłoki bash, możesz ją wybrać, aby uruchomić powłokę.
Jeśli zostanie wyświetlona powłoka inna niż powłoka bash , wybierz strzałkę listy rozwijanej powłoki, a następnie wybierz pozycję Git Bash.
W terminalu przejdź do katalogu, w którym zapisano szablon. Jeśli na przykład szablon został zapisany w folderze templates , możesz użyć następującego polecenia:
cd templates
Instalowanie aplikacji Bicep
Uruchom następujące polecenie, aby upewnić się, że masz najnowszą wersję aplikacji Bicep:
az bicep install && az bicep upgrade
Logowanie się do platformy Azure
W terminalu programu Visual Studio Code zaloguj się do platformy Azure, uruchamiając następujące polecenie:
az login
W przeglądarce, która zostanie otwarta, zaloguj się do konta platformy Azure. W terminalu programu Visual Studio Code zostanie wyświetlona lista subskrypcji skojarzonych z tym kontem. Wybierz subskrypcję o nazwie Subskrypcja Concierge.
Jeśli ostatnio użyto więcej niż jednej piaskownicy, terminal może wyświetlić więcej niż jedno wystąpienie subskrypcji Concierge. W tym przypadku użyj dwóch następnych kroków, aby ustawić jedną jako domyślną subskrypcję.
Pobierz identyfikatory subskrypcji Concierge.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Ustaw domyślną subskrypcję przy użyciu identyfikatora subskrypcji. Zastąp ciąg {your subscription ID} najnowszym identyfikatorem subskrypcji Concierge.
az account set --subscription {your subscription ID}
Ustawianie domyślnej grupy zasobów
W przypadku korzystania z interfejsu wiersza polecenia platformy Azure możesz ustawić domyślną grupę zasobów i pominąć parametr z pozostałych poleceń interfejsu wiersza polecenia platformy Azure w tym ćwiczeniu. Ustaw wartość domyślną na grupę zasobów utworzoną dla Ciebie w środowisku piaskownicy.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Aby wdrożyć ten szablon na platformie Azure, zaloguj się do konta platformy Azure z poziomu terminalu programu Visual Studio Code. Upewnij się, że zainstalowano program Azure PowerShell i zaloguj się do tego samego konta, na którym aktywowano piaskownicę.
W menu Terminal wybierz polecenie New Terminal (Nowy terminal). Okno terminalu zwykle otwiera się w dolnej połowie ekranu.
Jeśli w oknie terminalu jest wyświetlany program pwsh lub powershell po prawej stronie, oznacza to, że prawidłowa powłoka jest już otwarta. Alternatywnie, jeśli po prawej stronie zostanie wyświetlona ikona powłoki programu PowerShell, możesz ją wybrać, aby uruchomić powłokę.
Jeśli zostanie wyświetlona powłoka inna niż pwsh lub powershell , wybierz strzałkę listy rozwijanej powłoki, a następnie wybierz pozycję PowerShell.
W terminalu przejdź do katalogu, w którym zapisano szablon. Jeśli na przykład szablon został zapisany w folderze templates , możesz użyć tego polecenia:
Set-Location -Path templates
Logowanie się na platformie Azure przy użyciu programu Azure PowerShell
W terminalu programu Visual Studio Code uruchom następujące polecenie:
Connect-AzAccount
Zostanie otwarta przeglądarka umożliwiająca zalogowanie się do konta platformy Azure. Przeglądarka może zostać otwarta w tle.
Po zalogowaniu się na platformie Azure w terminalu zostanie wyświetlona lista subskrypcji skojarzonych z tym kontem. Jeśli aktywowano piaskownicę, zostanie wyświetlona subskrypcja o nazwie Subskrypcja Concierge. Wybierz go w pozostałej części ćwiczenia.
Jeśli ostatnio użyto więcej niż jednej piaskownicy, terminal może wyświetlić więcej niż jedno wystąpienie subskrypcji Concierge. W tym przypadku użyj dwóch następnych kroków, aby ustawić jedną jako domyślną subskrypcję.
Uzyskaj identyfikator subskrypcji. Uruchomienie następującego polecenia zawiera listę subskrypcji i ich identyfikatorów.
Concierge Subscription
Wyszukaj ciąg , a następnie skopiuj identyfikator z drugiej kolumny. Wygląda to mniej więcej tak:aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Zmień aktywną subskrypcję na Subskrypcja Concierge. Pamiętaj, aby zastąpić ciąg {Identyfikator subskrypcji} skopiowaną wartością.
$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Ustawianie domyślnej grupy zasobów
Możesz ustawić domyślną grupę zasobów i pominąć parametr z pozostałych poleceń programu Azure PowerShell w tym ćwiczeniu. Ustaw tę wartość domyślną na grupę zasobów utworzoną dla Ciebie w środowisku piaskownicy.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Aby wdrożyć ten szablon na platformie Azure, musisz zalogować się na konto platformy Azure z poziomu terminalu programu Visual Studio Code. Upewnij się, że zainstalowano interfejs wiersza polecenia platformy Azure i pamiętaj, aby zalogować się przy użyciu tego samego konta, które zostało użyte do aktywowania piaskownicy.
W menu Terminal wybierz polecenie New Terminal (Nowy terminal). Okno terminalu zwykle otwiera się w dolnej połowie ekranu.
Jeśli w oknie terminalu jest wyświetlana powłoka bash po prawej stronie, oznacza to, że prawidłowa powłoka jest już otwarta. Alternatywnie, jeśli po prawej stronie zostanie wyświetlona ikona powłoki bash, możesz ją wybrać, aby uruchomić powłokę.
Jeśli zostanie wyświetlona powłoka inna niż powłoka bash , wybierz strzałkę listy rozwijanej powłoki, a następnie wybierz pozycję Git Bash.
W terminalu przejdź do katalogu, w którym zapisano szablon. Jeśli na przykład szablon został zapisany w folderze templates , możesz użyć następującego polecenia:
cd templates
Logowanie się do platformy Azure
W terminalu programu Visual Studio Code zaloguj się do platformy Azure, uruchamiając następujące polecenie:
az login
W przeglądarce, która zostanie otwarta, zaloguj się do konta platformy Azure. W terminalu programu Visual Studio Code zostanie wyświetlona lista subskrypcji skojarzonych z tym kontem. Wybierz subskrypcję o nazwie Subskrypcja Concierge.
Jeśli ostatnio użyto więcej niż jednej piaskownicy, terminal może wyświetlić więcej niż jedno wystąpienie subskrypcji Concierge. W tym przypadku użyj dwóch następnych kroków, aby ustawić jedną jako domyślną subskrypcję.
Pobierz identyfikatory subskrypcji Concierge.
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Ustaw domyślną subskrypcję przy użyciu identyfikatora subskrypcji. Zastąp ciąg {your subscription ID} najnowszym identyfikatorem subskrypcji Concierge.
az account set --subscription {your subscription ID}
Ustawianie domyślnej grupy zasobów
W przypadku korzystania z interfejsu wiersza polecenia platformy Azure możesz ustawić domyślną grupę zasobów i pominąć parametr z pozostałych poleceń interfejsu wiersza polecenia platformy Azure w tym ćwiczeniu. Ustaw wartość domyślną na grupę zasobów utworzoną dla Ciebie w środowisku piaskownicy.
az configure --defaults group="<rgn>[sandbox resource group name]</rgn>"
Wdrażanie szablonu przy użyciu programu Azure PowerShell
Uruchom polecenie New-AzResourceGroupDeployment
, aby wdrożyć szablon.
New-AzResourceGroupDeployment -TemplateFile main.bicep
Tekst Uruchomiono... pojawi się w terminalu. Ukończenie wdrożenia trwa minutę lub dwie.
Wdrażanie szablonu przy użyciu programu Azure PowerShell
Uruchom polecenie New-AzResourceGroupDeployment
, aby wdrożyć szablon.
New-AzResourceGroupDeployment -TemplateFile azuredeploy.json
Tekst Uruchomiono... pojawi się w terminalu. Ukończenie wdrożenia trwa minutę lub dwie.
Wdrażanie szablonu przy użyciu interfejsu wiersza polecenia platformy Azure
Uruchom polecenie az deployment group create
, aby wdrożyć szablon.
az deployment group create --template-file main.bicep
Ukończenie wdrożenia trwa minutę lub dwie.
Wdrażanie szablonu przy użyciu interfejsu wiersza polecenia platformy Azure
Uruchom polecenie az deployment group create
, aby wdrożyć szablon.
az deployment group create --template-file azuredeploy.json
Ukończenie wdrożenia trwa minutę lub dwie.
Weryfikowanie wdrożenia
Aby sprawdzić, czy wdrożenie zostało utworzone i wysłane na platformę Azure, przejdź do witryny Azure Portal i upewnij się, że jesteś w subskrypcji piaskownicy:
Wybierz swój awatar w górnym rogu strony.
Wybierz pozycję Przełącz katalog. Z listy wybierz katalog Microsoft Learn Sandbox.
Wybierz pozycję Grupy zasobów.
Wybierz pozycję
[nazwa grupy zasobów piaskownicy] .W części Przegląd zostanie wyświetlona informacja o tym, że wdrożenie się powiodło.
Wybierz pozycję 1 udane, aby wyświetlić szczegóły wdrożenia.
Wybierz główne wdrożenie, aby zobaczyć, jakie zasoby zostały wdrożone. W tym przypadku wdrożono jedną sieć wirtualną (przestrzeń adresowa 10.0.0.0/16) z dwiema podsieciami.
Pozostaw stronę otwartą w przeglądarce, aby móc ponownie sprawdzić wdrożenia później.
Modyfikowanie szablonu
W pliku azuredeploy.json w programie Visual Studio Code usuń tag o nazwie
Owner
i jego wartości. Po zakończeniutags
właściwość sieci wirtualnej powinna wyglądać następująco:"tags": { "CostCenter": "12345" },
Zaktualizuj element ,
addressPrefixes
aby zmienić/16
wartość na/15
. Po zakończeniuaddressSpace
właściwość sieci wirtualnej powinna wyglądać następująco:"addressSpace": { "addressPrefixes": [ "10.0.0.0/15" ] },
Usuń podsieć o nazwie
subnet001
. Pamiętaj, aby usunąć cały obiekt podsieci. Po zakończeniusubnets
właściwość sieci wirtualnej powinna wyglądać następująco:"subnets": [ { "name": "subnet002", "properties": { "addressPrefix": "10.0.1.0/24" } } ]
Zapisz szablon.
W pliku main.bicep w programie Visual Studio Code usuń tag o nazwie
Owner
i jego wartości. Po zakończeniutags
właściwość sieci wirtualnej powinna wyglądać następująco:tags: { 'CostCenter': '12345' }
Zaktualizuj element ,
addressPrefixes
aby zmienić wartość na/16
/15
. Po zakończeniuaddressSpace
właściwość sieci wirtualnej powinna wyglądać następująco:addressSpace: { addressPrefixes: [ '10.0.0.0/15' ] }
Usuń podsieć o nazwie
subnet001
. Pamiętaj, aby usunąć cały obiekt podsieci. Po zakończeniusubnets
właściwość sieci wirtualnej powinna wyglądać następująco:subnets: [ { name: 'subnet002' properties: { addressPrefix: '10.0.1.0/24' } } ]
Zapisz szablon.
Uruchamianie polecenia analizy co-jeżeli przy użyciu zmodyfikowanego szablonu
Uruchom polecenie New-AzResourceGroupDeployment
z flagą -WhatIf
, aby wykonać operację analizy what-if.
New-AzResourceGroupDeployment `
-WhatIf `
-TemplateFile main.bicep
Uruchom polecenie New-AzResourceGroupDeployment
z flagą -WhatIf
, aby wykonać operację analizy what-if.
New-AzResourceGroupDeployment `
-WhatIf `
-TemplateFile azuredeploy.json
Uruchom polecenie az deployment group what-if
, aby wykonać operację analizy co-jeżeli:
az deployment group what-if \
--template-file main.bicep
Uruchom polecenie az deployment group what-if
, aby wykonać operację analizy co-jeżeli:
az deployment group what-if \
--template-file azuredeploy.json
Dane wyjściowe analizy co-jeżeli są podobne do następujących:
Zwróć uwagę, że wynik jest kodowany kolorami oprócz prefiksu:
- Kolor fioletowy i symbol ~ dla jakichkolwiek modyfikacji
- Kolor zielony i symbol + dla nowych zasobów, które mają zostać utworzone
- Kolor pomarańczowy i symbol - dla elementów do usunięcia
Usuwanie zasobów w szablonie
Zaktualizuj plik azuredeploy.json w programie Visual Studio Code i usuń całą zawartość
resources
tablicy. Po zakończeniu szablon powinien wyglądać następująco:{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "resources": [ ] }
Zapisz szablon.
W pliku main.bicep w programie Visual Studio Code usuń całą zawartość pliku, ale nie usuwaj samego pliku.
Zapisz szablon.
Wdrażanie przy użyciu trybu pełnego i opcji potwierdzenia
W następnych krokach wdrożysz pusty szablon w istniejącym środowisku.
Ostrzeżenie
Wykonanie tej czynności w rzeczywistości spowoduje usunięcie wszystkich elementów z chmury. Poniższy kod jest interesujący jako eksperyment intelektualny, ale zachowaj ostrożność podczas korzystania z tego trybu. Użyj flagi -Confirm
, aby móc zatrzymać tę operację, jeśli proponowane zmiany będą niezgodne z oczekiwaniami.
Ostrzeżenie
Wykonanie tej czynności w rzeczywistości spowoduje usunięcie wszystkich elementów z chmury. Poniższy kod jest interesujący jako eksperyment intelektualny, ale zachowaj ostrożność podczas korzystania z tego trybu. Użyj flagi --confirm-with-what-if
, aby móc zatrzymać tę operację, jeśli proponowane zmiany będą niezgodne z oczekiwaniami.
Uruchom
New-AzResourceGroupDeployment
polecenie z flagą ,-Mode Complete
aby wykonać wdrożenie w trybie pełnym:New-AzResourceGroupDeployment ` -Mode Complete ` -Confirm ` -TemplateFile main.bicep
Dane wyjściowe będą wyglądać podobnie do następujących:
Zauważ, że w ostatnim wierszu danych wyjściowych znajduje się monit o potwierdzenie. Aby kontynuować, należy wybrać y lub n.
W polu [A] Tak do wszystkich wprowadź wartość A , aby wykonać wdrożenie i wyczyścić środowisko.
Uruchom
New-AzResourceGroupDeployment
polecenie z flagą ,-Mode Complete
aby wykonać wdrożenie w trybie pełnym:New-AzResourceGroupDeployment ` -Mode Complete ` -Confirm ` -TemplateFile azuredeploy.json
Dane wyjściowe będą wyglądać podobnie do następujących:
Zauważ, że w ostatnim wierszu danych wyjściowych znajduje się monit o potwierdzenie. Aby kontynuować, należy wybrać y lub n.
W polu [A] Tak do wszystkich wprowadź wartość A , aby wykonać wdrożenie i wyczyścić środowisko.
Uruchom polecenie
az deployment group create
z flagą--mode Complete
, aby utworzyć wdrożenie w trybie pełnym:az deployment group create \ --mode Complete \ --confirm-with-what-if \ --template-file main.bicep
Dane wyjściowe będą wyglądać podobnie do następujących:
Zauważ, że w ostatnim wierszu danych wyjściowych znajduje się monit o potwierdzenie. Aby kontynuować, należy wybrać y lub n.
Wprowadź wartość y (w polu "tak"), aby wykonać wdrożenie i wyczyścić środowisko.
Uruchom polecenie
az deployment group create
z flagą--mode Complete
, aby utworzyć wdrożenie w trybie pełnym:az deployment group create \ --mode Complete \ --confirm-with-what-if \ --template-file azuredeploy.json
Dane wyjściowe będą wyglądać podobnie do następujących:
Zauważ, że w ostatnim wierszu danych wyjściowych znajduje się monit o potwierdzenie. Aby kontynuować, należy wybrać y lub n.
Wprowadź wartość y (w polu "tak"), aby wykonać wdrożenie i wyczyścić środowisko.
Weryfikowanie wdrożenia
Wróć do otwartej przeglądarki, której użyto wcześniej. Sprawdź, czy sieć wirtualna już nie istnieje, jak na poniższym zrzucie ekranu: