Zarządzanie specyfikacją szablonu

Ukończone

Specyfikacje szablonów zapewniają wygodny sposób publikowania i udostępniania szablonów w organizacji. W miarę używania specyfikacji szablonu ważne jest, aby zrozumieć, jak nimi zarządzać.

W tej lekcji dowiesz się więcej na temat przechowywania wersji, modyfikowania i usuwania specyfikacji szablonu oraz kontrolowania dostępu do specyfikacji szablonu.

Uwaga

Polecenia w tej lekcji są wyświetlane w celu zilustrowania pojęć. Nie uruchamiaj jeszcze poleceń. Będziesz ćwiczyć to, czego nauczysz się tutaj wkrótce.

Dodawanie wersji

Wiesz już, że specyfikacja pojedynczego szablonu może mieć wiele wersji. Specyfikacja szablonu działa jako kontener dla co najmniej jednej wersji, a każda wersja jest skojarzona z plikiem szablonu. Podczas wdrażania specyfikacji szablonu należy określić wersję, której chcesz użyć, aby usługa Azure Resource Manager wiedziała, który plik szablonu ma zostać pobrany.

Interfejs wiersza polecenia platformy Azure i program Azure PowerShell ułatwiają pracę z wieloma wersjami. W rzeczywistości podczas wdrażania specyfikacji szablonu w poprzednim ćwiczeniu już pracowałeś z wersjami.

Dobrym pomysłem jest dokładne zaplanowanie wersji specyfikacji szablonu. Dwie kluczowe decyzje, które należy podjąć, to schemat przechowywania wersji i zasady przechowywania wersji do użycia.

Schematy przechowywania wersji

Schemat przechowywania wersji określa sposób generowania numerów wersji. Typowe schematy przechowywania wersji obejmują:

  • Podstawowe liczby całkowite mogą być używane jako numery wersji. Na przykład pierwsza wersja może mieć nazwę 1, drugą wersję 2itd.
  • Daty również mają dobre numery wersji. Jeśli na przykład opublikujesz pierwszą wersję specyfikacji szablonu 16 stycznia 2021 r., możesz nazwać wersję 2021-01-16 (przy użyciu formatu rrrr-mm-dd ). Podczas publikowania innej wersji 3 marca można ją 2021-03-03nazwać .
  • Semantyczne przechowywanie wersji to system przechowywania wersji często używany w oprogramowaniu, w którym pojedynczy numer wersji zawiera wiele części. Każda część sygnalizuje różne informacje o charakterze zmiany.

Chociaż można użyć dowolnego schematu przechowywania wersji, warto wybrać coś, co można posortować w zrozumiałą kolejność, taką jak liczby i daty.

Uwaga

Platforma Azure przechowuje datę utworzenia każdej wersji. Nawet jeśli nie używasz przechowywania wersji opartych na dacie, nadal możesz zobaczyć te informacje.

Zasady przechowywania wersji

Specyfikacje szablonu zapewniają elastyczność wyboru, kiedy utworzyć nowe wersje lub zaktualizować istniejącą wersję. Na przykład możesz skutecznie zrezygnować z przechowywania wersji, tworząc i publikując pojedynczą wersję o nazwie latest. Zawsze, gdy trzeba zmienić specyfikację szablonu, wystarczy zaktualizować wersję. Chociaż te zasady działają, nie jest to dobre rozwiązanie.

Z drugiej strony, jeśli wprowadzisz niewielką zmianę istniejącego szablonu, który nie ma wpływu na jego użycie, utworzenie nowej wersji prawdopodobnie nie jest dobrym pomysłem. Należy przekazać nowy numer wersji każdemu, kto używa specyfikacji szablonu.

Oto zasady przechowywania wersji, które często działają dobrze:

  • Za każdym razem, gdy wprowadzisz istotne zmiany w specyfikacji szablonu, utwórz nową wersję. Istotne zmiany specyfikacji szablonu obejmują wszystkie elementy, które mogą mieć wpływ na użytkownika, który go wdraża. Przykłady obejmują dodanie innego zasobu do szablonu lub zmianę właściwości zasobu.
  • Za każdym razem, gdy wprowadzisz niewielkie zmiany w specyfikacji szablonu, które są czasami nazywane poprawką, zaktualizuj istniejącą wersję specyfikacji szablonu.
  • Usuń stare wersje, gdy nie są już istotne lub gdy nie chcesz, aby ktokolwiek z nich korzystał.

Napiwek

Rozważ użytkowników specyfikacji szablonu i upewnij się, że myślisz o tym, czego się spodziewają. Jeśli użytkownik wdraża specyfikację szablonu wiele razy i otrzymuje jeden wynik, a następnie wdraża go ponownie po poprawce i otrzyma inny wynik, prawdopodobnie będzie zaskoczony. Spróbuj zminimalizować prawdopodobieństwo, że użytkownicy otrzymają wynik, którego nie oczekują.

Opisy wersji

Podczas tworzenia nowej wersji specyfikacji szablonu można opcjonalnie nadać jej opis wersji. Podanie opisu wersji jest dobrym rozwiązaniem, nawet jeśli nie jest to wymagane. Opis wersji zawiera podsumowanie wprowadzonych zmian, aby ułatwić każdemu, kto używa specyfikacji szablonu do wybierania wersji, która najlepiej odpowiada ich potrzebom.

Wprowadzanie zmian w specyfikacji szablonu

Specyfikacje szablonu to zasoby platformy Azure, dzięki czemu można nimi zarządzać jak każdy inny zasób. Oznacza to, że można wyświetlić szczegóły specyfikacji szablonu, zaktualizować ją i usunąć, tak jak zwykle.

Aby na przykład wyświetlić listę wersji specyfikacji szablonu, użyj Get-AzTemplateSpec polecenia cmdlet :

Get-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec

To samo polecenie cmdlet służy do wyświetlania wersji specyfikacji szablonu. Dodaj parametr , -Version aby uzyskać szczegółowe informacje o wersji:

Get-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0

Dostęp do szablonu JSON można uzyskać, odczytując MainTemplate właściwość z tablicy Versions :

(Get-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0 `
).Versions[0].MainTemplate

Aby na przykład wyświetlić listę wersji specyfikacji szablonu, użyj az ts show polecenia :

az ts show \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec

To samo polecenie służy do wyświetlania wersji specyfikacji szablonu. Dodaj argument , --version aby uzyskać szczegółowe informacje o wersji:

az ts show \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec \
  --version 1.0

Szablon JSON jest uwzględniony w danych wyjściowych.

Uwaga

Podczas publikowania pliku Bicep na specyfikację szablonu jest on konwertowany na format JSON. Nie można zobaczyć oryginalnego pliku Bicep, więc warto zachować to gdzieś indziej.

Aby zaktualizować istniejącą specyfikację szablonu, użyj Set-AzTemplateSpec polecenia cmdlet . Możesz na przykład użyć tego polecenia cmdlet, aby zastosować poprawkę do wersji, która została już opublikowana:

Set-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0 `
  -TemplateFile azuredeploy.json

Możesz również usunąć wersję specyfikacji szablonu przy użyciu Remove-AzTemplateSpec polecenia cmdlet :

Remove-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0

Aby zaktualizować istniejącą specyfikację szablonu, użyj az ts update polecenia . Na przykład możesz użyć tego polecenia, aby zastosować poprawkę do wersji, która została już opublikowana:

az ts update \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec \
  --version 1.0 \
  --template-file azuredeploy.json

Możesz również usunąć wersję specyfikacji szablonu az ts delete przy użyciu polecenia :

az ts delete \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec \
  --version 1.0

Eksportowanie specyfikacji szablonu

Po opublikowaniu szablonu jako specyfikacji szablonu możesz go wyeksportować. Eksportowanie specyfikacji szablonu powoduje pobranie pliku szablonu na komputer lokalny. W tym miejscu możesz edytować plik szablonu lub po prostu go sprawdzić, aby zrozumieć, co robi.

Napiwek

Jeśli specyfikacja szablonu zawiera szablony połączone, eksportowanie specyfikacji szablonu spowoduje również pobranie połączonych szablonów. Utrzymuje nawet strukturę folderów.

Ważne

Podczas publikowania pliku Bicep jako specyfikacji szablonu kod Bicep jest konwertowany na szablon JSON. Proces konwertowania kodu Bicep na kod JSON usuwa niektóre informacje w pliku Bicep. Na przykład komentarze, nazwy symboliczne zasobów i kolejność definiowania zasobów mogą być brakujące lub inne w formacie JSON. Oznacza to, że nie można łatwo opublikować pliku Bicep jako specyfikacji szablonu, a następnie uzyskać oryginalny plik Bicep z powrotem (nazywany również roundtripping). Dobrym pomysłem jest przechowywanie kopii oryginalnego kodu Bicep w repozytorium kodu, takiego jak Git, szczególnie w przypadku pracy ze specyfikacjami szablonu.

Aby wyeksportować specyfikację szablonu, użyj Export-AzTemplateSpec polecenia cmdlet . -OutputFolder Użyj wartości , aby określić, gdzie chcesz zapisać pliki szablonu:

Export-AzTemplateSpec `
  -ResourceGroupName MyResourceGroup `
  -Name MyTemplateSpec `
  -Version 1.0 `
  -OutputFolder ./mytemplate

Aby wyeksportować specyfikację szablonu, użyj az ts export polecenia . --output-folder Użyj wartości , aby określić, gdzie chcesz zapisać pliki szablonu:

az ts export \
  --resource-group MyResourceGroup \
  --name MyTemplateSpec \
  --version 1.0 \
  --output-folder ./mytemplate

Kontrolowanie dostępu do specyfikacji szablonu

Ponieważ specyfikacje szablonu to zasoby platformy Azure, używają zarządzania tożsamościami i dostępem (IAM) platformy Azure. Gdy użytkownik wdraża specyfikację szablonu, platforma Azure sprawdza, czy użytkownik ma dostęp do odczytu specyfikacji szablonu.

Uwaga

Aby wdrożyć specyfikację szablonu, użytkownik musi:

  • Dostęp do odczytu specyfikacji szablonu.
  • Dostęp do wdrożenia w grupie zasobów lub w innym zakresie, do którego prosi o wdrożenie.

Platforma Azure sprawdza oba warunki przed rozpoczęciem wdrażania.