Eksportowanie szablonu przy użyciu interfejsu wiersza polecenia platformy Azure

Aby ułatwić tworzenie szablonów usługi Azure Resource Manager, możesz wyeksportować szablon z istniejących zasobów. Wyeksportowany szablon pomaga zrozumieć składnię JSON i właściwości, które wdrażają zasoby. Aby zautomatyzować przyszłe wdrożenia, zacznij od wyeksportowanego szablonu i zmodyfikuj go dla danego scenariusza. Proces eksportowania szablonu próbuje utworzyć szablon nadający się do użycia. Jednak większość wyeksportowanych szablonów wymaga pewnych modyfikacji, zanim będzie można ich użyć do wdrożenia zasobów platformy Azure.

Resource Manager umożliwia wybranie co najmniej jednego zasobu na potrzeby eksportowania do szablonu. Możesz skupić się na dokładnie tych zasobach, których potrzebujesz w szablonie.

W tym artykule pokazano, jak eksportować szablony za pomocą interfejsu wiersza polecenia platformy Azure. Aby uzyskać inne opcje, zobacz:

Wybieranie odpowiedniej opcji eksportu

Istnieją dwa sposoby eksportowania szablonu:

  • Eksportuj z grupy zasobów lub zasobu. Ta opcja generuje nowy szablon na podstawie istniejących zasobów. Wyeksportowany szablon to "migawka" bieżącego stanu grupy zasobów. Możesz wyeksportować całą grupę zasobów lub określone zasoby w tej grupie zasobów.

  • Zapisz z historii. Ta opcja pobiera dokładną kopię szablonu używanego do wdrożenia. Należy określić wdrożenie z historii wdrożenia.

W zależności od wybranej opcji wyeksportowane szablony mają różne cechy.

Z grupy zasobów lub zasobu Z historii
Szablon jest generowany automatycznie. Prawdopodobnie warto ulepszyć kod przed jego wdrożeniem. Szablon jest dokładną kopią szablonu utworzoną przez autora szablonu. Wszystko jest gotowe do ponownego wdrożenia bez żadnych zmian.
Szablon to migawka bieżącego stanu zasobów. Zawiera on wszelkie zmiany ręczne wprowadzone po wdrożeniu. Szablon pokazuje tylko stan zasobów w momencie wdrożenia. Wszelkie zmiany ręczne wprowadzone po wdrożeniu nie są uwzględniane.
Możesz wybrać zasoby z grupy zasobów do wyeksportowania. Uwzględniane są wszystkie zasoby dla określonego wdrożenia. Nie można wybrać podzestawu tych zasobów ani dodać zasobów, które zostały dodane w innym czasie.
Szablon zawiera wszystkie właściwości zasobów, w tym niektóre właściwości, których zwykle nie można ustawić podczas wdrażania. Przed ponownym użyciu szablonu możesz usunąć lub wyczyścić te właściwości. Szablon zawiera tylko właściwości wymagane do wdrożenia. Szablon jest bardziej rozrzedniejszy i łatwiejszy do odczytania.
Szablon prawdopodobnie nie zawiera wszystkich parametrów potrzebnych do ponownego użycia. Większość wartości właściwości jest zakodowana w szablonie. Aby ponownie wdrożyć szablon w innych środowiskach, należy dodać parametry, które zwiększają możliwość konfigurowania zasobów. Możesz usunąć zaznaczenie pola Wyboru Uwzględnij parametry , aby móc tworzyć własne parametry. Szablon zawiera parametry, które ułatwiają ponowne wdrażanie w różnych środowiskach.

Wyeksportuj szablon z grupy zasobów lub zasobu, gdy:

  • Należy przechwycić zmiany zasobów, które zostały wprowadzone po oryginalnym wdrożeniu.
  • Chcesz wybrać, które zasoby są eksportowane.
  • Zasoby nie zostały utworzone za pomocą szablonu.

Wyeksportuj szablon z historii, gdy:

  • Potrzebujesz łatwego do ponownego użycia szablonu.
  • Nie trzeba uwzględniać zmian wprowadzonych po oryginalnym wdrożeniu.

Ograniczenia

Nie ma gwarancji, że eksport zakończy się pomyślnie. Eksportowanie nie jest niezawodnym sposobem przekształcania istniejących zasobów w szablony, których można używać w środowisku produkcyjnym. Lepiej jest tworzyć zasoby od podstaw przy użyciu ręcznie napisanego pliku Bicep, szablonu usługi ARM lub narzędzia terraform.

Podczas eksportowania z grupy zasobów lub zasobu wyeksportowany szablon jest generowany na podstawie opublikowanych schematów dla każdego typu zasobu. Czasami schemat nie ma najnowszej wersji dla typu zasobu. Sprawdź wyeksportowany szablon, aby upewnić się, że zawiera on potrzebne właściwości. W razie potrzeby zmodyfikuj wyeksportowany szablon, aby korzystać z potrzebnej wersji interfejsu API.

W wyeksportowanych szablonach mogą brakować niektórych parametrów hasła. Należy sprawdzić odwołanie do szablonu i ręcznie dodać te parametry, zanim będzie można użyć szablonów do wdrożenia zasobów.

Funkcja szablonu eksportu nie obsługuje eksportowania Azure Data Factory zasobów. Aby dowiedzieć się więcej na temat eksportowania zasobów usługi Data Factory, zobacz Kopiowanie lub klonowanie fabryki danych w Azure Data Factory.

Aby wyeksportować zasoby utworzone za pomocą klasycznego modelu wdrażania, należy przeprowadzić ich migrację do modelu wdrażania Resource Manager.

Jeśli podczas eksportowania szablonu zostanie wyświetlone ostrzeżenie wskazujące, że typ zasobu nie został wyeksportowany, nadal możesz odnaleźć właściwości tego zasobu. Aby uzyskać informacje o właściwościach zasobów, zobacz dokumentację szablonu. Możesz również przyjrzeć się interfejsowi API REST platformy Azure dla typu zasobu.

Istnieje limit 200 zasobów w grupie zasobów, dla której został utworzony wyeksportowany szablon. Jeśli spróbujesz wyeksportować grupę zasobów zawierającą więcej niż 200 zasobów, zostanie wyświetlony komunikat Export template is not supported for resource groups more than 200 resources o błędzie.

Eksportowanie szablonu z grupy zasobów

Po pomyślnym skonfigurowaniu grupy zasobów można wyeksportować szablon usługi Azure Resource Manager dla grupy zasobów.

Aby wyeksportować wszystkie zasoby w grupie zasobów, użyj polecenia az group export i podaj nazwę grupy zasobów.

az group export --name demoGroup

Skrypt wyświetla szablon w konsoli programu . Aby zapisać plik, użyj:

az group export --name demoGroup > exportedtemplate.json

Zamiast eksportować wszystkie zasoby w grupie zasobów, możesz wybrać zasoby do wyeksportowania.

Aby wyeksportować jeden zasób, przekaż ten identyfikator zasobu.

storageAccountID=$(az resource show --resource-group demoGroup --name demostg --resource-type Microsoft.Storage/storageAccounts --query id --output tsv)
az group export --resource-group demoGroup --resource-ids $storageAccountID

Aby wyeksportować więcej niż jeden zasób, przekaż identyfikatory zasobów rozdzielonych spacjami. Aby wyeksportować wszystkie zasoby, nie należy określać tego argumentu ani podawać "*".

az group export --resource-group <resource-group-name> --resource-ids $storageAccountID1 $storageAccountID2

Podczas eksportowania szablonu można określić, czy parametry są używane w szablonie. Domyślnie parametry nazw zasobów są uwzględniane, ale nie mają wartości domyślnej.

"parameters": {
  "serverfarms_demoHostPlan_name": {
    "type": "String"
  },
  "sites_webSite3bwt23ktvdo36_name": {
    "type": "String"
  }
}

Jeśli używasz parametru --skip-resource-name-params podczas eksportowania szablonu, parametry nazw zasobów nie są uwzględniane w szablonie. Zamiast tego nazwa zasobu jest ustawiana bezpośrednio na zasób na jego bieżącą wartość. Nie można dostosować nazwy podczas wdrażania.

"resources": [
  {
    "type": "Microsoft.Web/serverfarms",
    "apiVersion": "2022-09-01",
    "name": "demoHostPlan",
    ...
  }
]

Jeśli używasz parametru --include-parameter-default-value podczas eksportowania szablonu, parametr szablonu zawiera wartość domyślną ustawioną na bieżącą wartość. Możesz użyć tej wartości domyślnej lub zastąpić wartość domyślną, przekazując inną wartość.

"parameters": {
  "serverfarms_demoHostPlan_name": {
    "defaultValue": "demoHostPlan",
    "type": "String"
  },
  "sites_webSite3bwt23ktvdo36_name": {
    "defaultValue": "webSite3bwt23ktvdo36",
    "type": "String"
  }
}

Zapisywanie szablonu z historii wdrożenia

Szablon można zapisać z wdrożenia w historii wdrożenia. Otrzymany szablon jest dokładnie taki, który został użyty do wdrożenia.

Aby pobrać szablon z wdrożenia grupy zasobów, użyj polecenia az deployment group export . Należy określić nazwę wdrożenia do pobrania. Aby uzyskać pomoc dotyczącą uzyskiwania nazwy wdrożenia, zobacz Wyświetlanie historii wdrażania za pomocą usługi Azure Resource Manager.

az deployment group export --resource-group demoGroup --name demoDeployment

Szablon jest wyświetlany w konsoli programu . Aby zapisać plik, użyj:

az deployment group export --resource-group demoGroup --name demoDeployment > demoDeployment.json

Aby pobrać szablony wdrożone na innych poziomach, użyj:

Następne kroki