Zarządzanie specyfikacją szablonu
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.
Notatka
Polecenia w tej jednostce są wyświetlane dla zobrazowania koncepcji. 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, jak będziesz wersjonować te specyfikacje szablonu. Dwie kluczowe decyzje to schemat wersjonowania i zasady wersjonowania do użycia.
Schematy przechowywania wersji
Schemat przechowywania wersji określa sposób generowania numerów wersji. Typowe schematy przechowywania wersji obejmują:
-
podstawowych liczb całkowitych mogą być używane jako numery wersji. Na przykład pierwszą wersję można wywołać
1
, drugą wersję2
itd. -
Daty mogą także być dobrymi numerami 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 yyyy-mm-dd). Podczas publikowania innej wersji 3 marca można ją nazwać2021-03-03
. - Wersjonowanie semantyczne to system wersjonowania często używany w oprogramowaniu, gdzie 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.
Notatka
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
Tworząc nową wersję specyfikacji szablonu, możesz 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 polecenia cmdlet Get-AzTemplateSpec
:
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 właściwość MainTemplate
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 polecenia az ts show
:
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.
Notatka
Podczas publikowania pliku Bicep na specyfikację szablonu jest on konwertowany na format JSON. Nie można zobaczyć oryginalnego pliku Bicep, więc dobrze jest zachować go gdzie indziej.
Aby zaktualizować istniejącą specyfikację szablonu, użyj polecenia cmdlet Set-AzTemplateSpec
. 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 polecenia cmdlet Remove-AzTemplateSpec
:
Remove-AzTemplateSpec `
-ResourceGroupName MyResourceGroup `
-Name MyTemplateSpec `
-Version 1.0
Aby zaktualizować istniejącą specyfikację szablonu, użyj polecenia az ts update
. 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 przy użyciu polecenia az ts delete
:
az ts delete \
--resource-group MyResourceGroup \
--name MyTemplateSpec \
--version 1.0
Eksportowanie specyfikacji szablonu
Po opublikowaniu szablonu jako specyfikacji szablonu możesz wyeksportować go. 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żny
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 polecenia cmdlet Export-AzTemplateSpec
. Użyj wartości -OutputFolder
, 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 polecenia az ts export
. Użyj wartości --output-folder
, 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.
Notatka
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.