Przewidywalny sposób aprowizować i wdrażać mikrousługi na platformie Azure

W tym samouczku pokazano, jak aprowizować i wdrażać aplikację składającą się z mikrousług w programie Azure App Service jako pojedynczą jednostkę i w przewidywalny sposób przy użyciu szablonów grupy zasobów JSON i skryptów programu PowerShell.

W przypadku aprowizowania i wdrażania aplikacji o dużej skali, które składają się z wysoce oddzielonych mikrousług, powtarzalność i przewidywalność mają kluczowe znaczenie dla sukcesu. Azure App Service umożliwia tworzenie mikrousług, które obejmują aplikacje internetowe, zaimki mobilne i aplikacje interfejsu API. Azure Resource Manager umożliwia zarządzanie wszystkimi mikrousługami jako jednostką wraz z zależnościami zasobów, takimi jak ustawienia bazy danych i kontroli źródła. Teraz możesz również wdrożyć taką aplikację przy użyciu szablonów JSON i prostych skryptów programu PowerShell.

Co będziesz robić

W tym samouczku wdrożysz aplikację, która obejmuje:

  • Dwie App Service aplikacji (tj. dwie mikrousługi)
  • A backend SQL Database (SQL Database
  • Ustawienia aplikacji, parametry połączenia i kontrola źródła
  • Application insights, alerts, autoscaling settings (Szczegółowe informacje o aplikacji, alerty, ustawienia skalowania automatycznego)

Narzędzia, których będziesz używać

W tym samouczku użyjemy następujących narzędzi. Ponieważ nie jest to wyczerpująca dyskusja na temat narzędzi, zamierzam korzystać z kompleksowego scenariusza i jedynie podać krótkie wprowadzenie do każdego z nich i znaleźć więcej informacji na jego temat.

Azure Resource Manager szablonów (JSON)

Na przykład za każdym razem, gdy tworzysz aplikację w Azure App Service, Azure Resource Manager szablon JSON umożliwia utworzenie całej grupy zasobów z zasobami składnika. Złożony szablon z usługi Azure Marketplace może obejmować bazę danych, konta magazynu, plan usługi App Service, samą aplikację, reguły alertów, ustawienia aplikacji, ustawienia automatycznego skalowania i inne, a wszystkie te szablony są dostępne za pośrednictwem programu PowerShell. Aby uzyskać więcej informacji na temat szablonów Azure Resource Manager, zobacz Authoring Azure Resource Manager templates (Tworzenie szablonów Azure Resource Manager szablonów).

Zestaw Azure SDK 2.6 dla Visual Studio

Najnowszy zestaw SDK zawiera ulepszenia obsługi szablonów Resource Manager w edytorze JSON. Za jego pomocą można szybko utworzyć szablon grupy zasobów od podstaw lub otworzyć istniejący szablon JSON (na przykład pobrany szablon galerii) w celu modyfikacji, wypełnić plik parametrów, a nawet wdrożyć grupę zasobów bezpośrednio z rozwiązania grupy zasobów platformy Azure.

Aby uzyskać więcej informacji, zobacz Zestaw Azure SDK 2.6 dla Visual Studio.

Azure PowerShell 0.8.0 lub nowszy

Począwszy od wersji 0.8.0, instalacja Azure PowerShell obejmuje moduł Azure Resource Manager oprócz modułu platformy Azure. Ten nowy moduł umożliwia tworzenie skryptów wdrażania grup zasobów.

Aby uzyskać więcej informacji, zobacz Using Azure PowerShell with Azure Resource Manager (Używanie Azure PowerShell z Azure Resource Manager

Eksplorator zasobów Azure

To narzędzie w wersji zapoznawczej umożliwia eksplorowanie definicji JSON wszystkich grup zasobów w subskrypcji i poszczególnych zasobów. W narzędziu można edytować definicje JSON zasobu, usuwać całą hierarchię zasobów i tworzyć nowe zasoby. Informacje łatwo dostępne w tym narzędziu są bardzo przydatne podczas tworzenia szablonów, ponieważ pokazują, jakie właściwości należy ustawić dla określonego typu zasobu, poprawne wartości itp. Możesz nawet utworzyć grupę zasobów w witrynie Azure Portal,a następnie sprawdzić jej definicje JSON w narzędziu eksploratora, aby ułatwić utworzenie szablonów grupy zasobów.

Przycisk Wdróż na platformie Azure

Jeśli używasz GitHub kontroli źródła, możesz umieścić przycisk Deploy to Azure (Wd wdrażaj na platformie Azure) w pliku README. Md, która umożliwia platformie Azure korzystanie z kluczowych interfejsów użytkownika wdrażania. Można to zrobić dla dowolnej prostej aplikacji, ale można ją rozszerzyć, aby umożliwić wdrażanie całej grupy zasobów przez umieszczenie pliku azuredeploy.jsw katalogu głównym repozytorium. Ten plik JSON, który zawiera szablon grupy zasobów, będzie używany przez przycisk Deploy to Azure (Wd wdrażaj na platformie Azure) do utworzenia grupy zasobów. Przykład można znaleźć w przykładzie ToDoApp, którego użyjemy w tym samouczku.

Pobierz przykładowy szablon grupy zasobów

Teraz przejdźmy do niego.

  1. Przejdź do przykładowego App Service ToDoApp.

  2. W readme.md pozycję Deploy to Azure (Wd wdrażaj na platformie Azure).

  3. Zostanie podjęta prośba o wprowadzenie parametrów wdrożenia w witrynie deploy-to-azure. Zwróć uwagę, że większość pól jest wypełniana nazwą repozytorium i pewnymi losowymi ciągami. Jeśli chcesz, możesz zmienić wszystkie pola, ale jedynymi czynnościami, które należy wprowadzić, są nazwa logowania SQL Server administracyjnego i hasło, a następnie kliknij przycisk Dalej.

    Pokazuje wejściowe parametry wdrożenia w witrynie deploy-to-azure.

  4. Następnie kliknij przycisk Wd wdrażaj, aby rozpocząć proces wdrażania. Po zakończeniu procesu kliknij link http://todoapp XXXX.azurewebsites.net, aby przejrzeć wdrożoną aplikację.

    Przedstawia proces wdrażania aplikacji.

    Interfejs użytkownika będzie nieco powolny podczas pierwszego przeglądania, ponieważ aplikacje dopiero się uruchamiają, ale przekonaj się, że jest to w pełni funkcjonalna aplikacja.

  5. Na stronie Wdrażanie kliknij link Zarządzaj, aby wyświetlić nową aplikację w witrynie Azure Portal.

  6. Na liście rozwijanej Podstawowe elementy kliknij link grupa zasobów. Pamiętaj również, że aplikacja jest już połączona z repozytorium GitHub w obszarze External Project.

    Wyświetla link Grupa zasobów w sekcji listy rozwijanej Podstawowe elementy.

  7. W bloku grupy zasobów zwróć uwagę, że istnieją już dwie aplikacje i jedna SQL Database w grupie zasobów.

    Przedstawia zasoby dostępne w grupie zasobów.

Wszystko, co właśnie widzieliśmy w ciągu kilku minut, to w pełni wdrożona aplikacja dwuusługowa ze wszystkimi składnikami, zależnościami, ustawieniami, bazą danych i ciągłym publikowaniem, która jest ustawiana za pomocą zautomatyzowanej orkiestracji w Azure Resource Manager. Wszystko to zostało zrobione przez dwie rzeczy:

  • Przycisk Deploy to Azure (Wd wdrażaj na platformie Azure)
  • azuredeploy.jsw katalogu głównym repo

Tę samą aplikację można wdrożyć dziesiątki, setki lub tysiące razy i za każdym razem mieć dokładnie taką samą konfigurację. Powtarzalność i przewidywalność tego podejścia umożliwiają łatwe i łatwe wdrażanie aplikacji na dużą skalę.

Sprawdź (lub edytuj) AZUREDEPLOY.JSWŁ.

Teraz przyjrzyjmy się, jak GitHub repozytorium danych. Będziesz używać edytora JSON w zestawie Azure .NET SDK, więc jeśli nie zainstalowano jeszcze zestawu Azure .NET SDK 2.6,zrób to teraz.

  1. Sklonuj repozytorium ToDoApp przy użyciu ulubionego narzędzia git. Na poniższym zrzucie ekranu robię to w Team Explorer Visual Studio 2013.

    Pokazuje, jak sklonować repozytorium ToDoApp za pomocą narzędzia Git.

  2. W katalogu głównym repozytorium otwórz azuredeploy.jsw katalogu Visual Studio. Jeśli nie widzisz okienka Konspekt JSON, musisz zainstalować zestaw Azure .NET SDK.

    Wyświetla okienko Konspekt JSON w Visual Studio.

Nie opisuję wszystkich szczegółów formatu JSON, ale sekcja Więcej zasobów zawiera linki do nauki języka szablonu grupy zasobów. W tym miejscu pokażemy ci interesujące funkcje, które mogą pomóc Ci rozpocząć tworzenie własnego szablonu niestandardowego na przykład do wdrażania aplikacji.

Parametry

Zapoznaj się z sekcją parameters, aby zobaczyć, że większość z tych parametrów jest tym, co przycisk Deploy to Azure (Wdróć na platformie Azure) wyświetla monit o wprowadzenie danych. Witryna za przyciskiem Deploy to Azure (Wdrażanie na platformie Azure) wypełnia wejściowy interfejs użytkownika przy użyciu parametrów zdefiniowanych w azuredeploy.jsna. Te parametry są używane w definicjach zasobów, takich jak nazwy zasobów, wartości właściwości itp.

Zasoby

W węźle zasobów widać, że zdefiniowano 4 zasoby najwyższego poziomu, w tym wystąpienie SQL Server, plan App Service i dwie aplikacje.

Plan usługi App Service

Zacznijmy od prostego zasobu na poziomie głównym w danych JSON. W konspekcie JSON kliknij plan App Service o nazwie [hostingPlanName], aby wyróżnić odpowiedni kod JSON.

Wyświetla sekcję [hostingPlanName] kodu JSON.

Należy pamiętać, że element określa ciąg dla planu usługi App Service (był on nazywany farmą serwerów już wcześniej), a inne elementy i właściwości są wypełniane przy użyciu parametrów zdefiniowanych w pliku JSON, a ten zasób nie ma żadnych type zagnieżdżonych zasobów.

Uwaga

Należy również zauważyć, że wartość informuje platformę Azure, z której wersji interfejsu API REST należy korzystać z definicji zasobu JSON, i może mieć wpływ na sposób formatowania zasobu w apiVersion obiekcie {} .

SQL Server

Następnie kliknij zasób o nazwie SQL Server SQLServer w konspekcie JSON.

Pokazuje zasób SQL Server o nazwie SQLServer w konspekcie JSON.

Zwróć uwagę na następujący kod JSON:

  • Użycie parametrów zapewnia, że utworzone zasoby są nazwane i skonfigurowane w sposób, który sprawia, że są one spójne ze sobą.

  • Zasób SQLServer ma dwa zagnieżdżone zasoby, z których każdy ma inną wartość type dla .

  • Zagnieżdżone zasoby wewnątrz elementu , w którym zdefiniowano bazę danych i reguły zapory, mają element określający identyfikator zasobu zasobu SQLServer na poziomie “resources”: […] dependsOn głównym. Dzięki temu Azure Resource Manager "przed utworzeniem tego zasobu inny zasób musi już istnieć; a jeśli ten inny zasób jest zdefiniowany w szablonie, najpierw utwórz ten zasób".

    Uwaga

    Aby uzyskać szczegółowe informacje na temat używania resourceId() funkcji , zobacz Azure Resource Manager Template Functions.

  • Efektem działania elementu jest to, Azure Resource Manager, które zasoby mogą być tworzone równolegle i które zasoby dependsOn muszą być tworzone sekwencyjnie.

Aplikacja usługi App Service

Teraz przejdźmy do rzeczywistych aplikacji, które są bardziej skomplikowane. Kliknij aplikację [variables('apiSiteName')] w konspekcie JSON, aby wyróżnić jej kod JSON. Zauważysz, że wszystko jest o wiele bardziej interesujące. W tym celu pomówię o funkcjach po jednym:

Zasób główny

Aplikacja zależy od dwóch różnych zasobów. Oznacza to, Azure Resource Manager aplikacja zostanie utworzona dopiero po utworzeniu App Service i SQL Server aplikacji.

Pokazuje zależności aplikacji od planu App Service i SQL Server wystąpienia.

Ustawienia aplikacji

Ustawienia aplikacji są również zdefiniowane jako zagnieżdżony zasób.

Przedstawia ustawienia aplikacji zdefiniowane jako zasób zagnieżdżony w kodzie JSON.

W properties elemencie config/appsettings dla elementu masz dwa ustawienia aplikacji w formacie "<name>" : "<value>" .

  • PROJECTto ustawienie kudu, które informuje wdrożenie platformy Azure, którego projektu użyć w wielu projektach Visual Studio rozwiązania. Później pokażemy Ci, jak jest skonfigurowana kontrola źródła, ale ponieważ kod ToDoApp znajduje się w rozwiązaniu wielokondycowym Visual Studio, potrzebujemy tego ustawienia.
  • clientUrl jest po prostu ustawieniem aplikacji używanym przez kod aplikacji.
Parametry połączeń

Parametry połączenia są również zdefiniowane jako zasób zagnieżdżony.

Pokazuje, jak parametry połączenia są zdefiniowane jako zasób zagnieżdżony w kodzie JSON.

W properties elemencie dla elementu każdy ciąg połączenia jest również zdefiniowany jako para config/connectionstrings name:value o określonym formacie "<name>" : {"value": "…", "type": "…"} . Dla elementu type możliwe wartości to , , i MySql SQLServer SQLAzure Custom .

Porada

Aby uzyskać ostateczną listę typów parametrów połączenia, uruchom następujące polecenie w pliku Azure PowerShell: [ Enum]::GetNames("Microsoft.WindowsAzure.Commands.Utilities.Websites.Services.WebEntities.DatabaseType")

Kontrola źródła

Ustawienia kontroli źródła są również zdefiniowane jako zasób zagnieżdżony. Azure Resource Manager używa tego zasobu do konfigurowania ciągłego publikowania (zobacz później), a także do automatycznego rozpoczynania wdrażania kodu aplikacji podczas przetwarzania pliku IsManualIntegration JSON.

Pokazuje, jak ustawienia kontroli źródła są zdefiniowane jako zasób zagnieżdżony w kodzie JSON.

RepoUrl Pliki i powinny być dość intuicyjne i powinny wskazać repozytorium Git oraz branch nazwę gałęzi do opublikowania. Ponownie są one definiowane przez parametry wejściowe.

Zwróć uwagę, że element oprócz samego zasobu aplikacji zależy również od dependsOn sourcecontrols/web elementów i config/appsettings config/connectionstrings . Jest to spowodowane tym, że po skonfigurowaniu procesu wdrażania platformy Azure automatycznie podejmiesz próbę sourcecontrols/web wdrożenia, skompilowania i uruchomienia kodu aplikacji. W związku z tym wstawienie tej zależności pomaga upewnić się, że aplikacja ma dostęp do wymaganych ustawień aplikacji i parametry połączenia przed uruchomieniem kodu aplikacji.

Uwaga

Należy również pamiętać, IsManualIntegration że wartość jest ustawiona na wartość true . Ta właściwość jest niezbędna w tym samouczku, ponieważ w rzeczywistości nie jesteś właścicielem repozytorium GitHub i w związku z tym nie możesz udzielić uprawnień platformie Azure w celu skonfigurowania ciągłego publikowania z usługi ToDoApp (tj. wypychania automatycznych aktualizacji repozytorium na platformę Azure). Wartości domyślnej dla określonego repozytorium można używać tylko wtedy, gdy wcześniej skonfigurowano poświadczenia GitHub w Azure Portal false repozytorium. Innymi słowy, jeśli wcześniej za pomocą poświadczeń użytkownika została ustawiona kontrola źródła na GitHub lub BitBucket dla dowolnej aplikacji w witrynie Azure Portal, platforma Azure zapamięta poświadczenia i użyje ich za każdym razem, gdy w przyszłości wdrożysz dowolną aplikację z usługi GitHub lub BitBucket. Jeśli jednak nie zostało to jeszcze zrobione, wdrożenie szablonu JSON nie powiedzie się, gdy program Azure Resource Manager spróbuje skonfigurować ustawienia kontroli źródła aplikacji, ponieważ nie może zalogować się do usługi GitHub lub BitBucket przy użyciu poświadczeń właściciela repozytorium.

Porównanie szablonu JSON z wdrożoną grupą zasobów

W tym miejscu możesz przejść przez wszystkie blade aplikacji w witrynie Azure Portal,ale istnieje inne narzędzie, które jest równie przydatne, jeśli nie więcej. Przejdź do narzędzia Azure Resource Explorer wersji zapoznawczej, które zapewnia reprezentację JSON wszystkich grup zasobów w twoich subskrypcjach, ponieważ w rzeczywistości istnieją one w zasób platformy Azure. Możesz również zobaczyć, jak hierarchia JSON grupy zasobów na platformie Azure odpowiada hierarchii w pliku szablonu użytym do jej utworzenia.

Na przykład po dojściu do narzędzia Azure Resource Explorer i rozwinięciu węzłów w eksploratorze widzę grupę zasobów i zasoby na poziomie głównym, które są zbierane w ramach odpowiednich typów zasobów.

Wyświetl grupę zasobów i zasoby na poziomie głównym w rozwiniętym narzędziu Eksplorator zasobów platformy Azure.

W przypadku przechodzenia do szczegółów aplikacji powinno być możliwe wyświetlanie szczegółów konfiguracji aplikacji podobnych do tych na poniższym zrzucie ekranu:

Przejdź do szczegółów, aby wyświetlić szczegóły konfiguracji w aplikacji.

Ponownie zagnieżdżone zasoby powinny mieć hierarchię bardzo podobną do tych w pliku szablonu JSON, a ustawienia aplikacji, parametry połączenia itp. powinny być prawidłowo odzwierciedlone w okienku JSON. Brak ustawień w tym miejscu może wskazywać na problem z plikiem JSON i może pomóc w rozwiązywaniu problemów z plikiem szablonu JSON.

Wdrażanie szablonu grupy zasobów samodzielnie

Przycisk Wd wdrażaj na platformie Azure jest doskonały, ale umożliwia wdrożenie szablonu grupy zasobów w usłudze azuredeploy.jstylko wtedy, gdy zostały już azuredeploy.jsdo GitHub. Zestaw Azure .NET SDK udostępnia również narzędzia do wdrażania dowolnego pliku szablonu JSON bezpośrednio z komputera lokalnego. W tym celu wykonaj poniższe kroki:

  1. W Visual Studio kliknij pozycję Nowy > > plik Project.

  2. Kliknij pozycję Visual C# > Cloud > Azure Resource Group, a następnie kliknij przycisk OK.

    Utwórz nowy projekt jako grupę zasobów platformy Azure w zestawie Azure .NET SDK.

  3. W witrynie Select Azure Template (Wybieranie szablonu platformy Azure) wybierz pozycję Blank Template (Pusty szablon) i kliknij przycisk OK.

  4. Przeciągnij azuredeploy.jsdo folderu Template nowego projektu.

    Wyświetla wynik przeciągania azuredeploy.jspliku do folderu Template projektu.

  5. Z Eksplorator rozwiązań otwórz skopiowaną azuredeploy.jsna.

  6. W ramach pokazu dodajmy kilka standardowych zasobów usługi Application Insights do pliku JSON, klikając pozycję Dodaj zasób. Jeśli interesuje Cię tylko wdrożenie pliku JSON, przejdź do kroków wdrażania.

    Wyświetla przycisk Dodaj zasób, który umożliwia dodawanie standardowych zasobów usługi Application Insights do pliku JSON.

  7. Wybierz pozycję Szczegółowe informacje dla Web Apps , a następnie upewnij się, że wybrano istniejący plan App Service aplikacji i aplikację, a następnie kliknij przycisk Dodaj.

    Przedstawia wybór opcji Application Szczegółowe informacje dla Web Apps, Nazwa, App Service i Aplikacja internetowa.

    Teraz będzie można zobaczyć kilka nowych zasobów, które w zależności od zasobu i jego działania są zależne od planu App Service lub aplikacji. Te zasoby nie są włączane przez ich istniejącą definicję i zamierzasz to zmienić.

    Wyświetl nowe zasoby, które mają zależności od App Service lub aplikacji.

  8. W konspekcie JSON kliknij pozycję appInsights AutoScale, aby wyróżnić jej kod JSON. Jest to ustawienie skalowania dla twojego App Service planu.

  9. W wyróżniony kod JSON znajdź właściwości i i location enabled ustaw je, jak pokazano poniżej.

    Przedstawia lokalizację i włączone właściwości w kodzie JSON autoskalowania usługi AppInsights oraz wartości, na które należy je ustawić.

  10. W konspekcie kodu JSON kliknij pozycję CPUHigh appInsights, aby wyróżnić jej kod JSON. Jest to alert.

  11. Znajdź właściwości location i isEnabled i ustaw je, jak pokazano poniżej. Zrób to samo dla pozostałych trzech alertów (purpurowe żarówki).

    Pokazuje właściwości location i isEnabled w kodzie JSON cpuHigh appInsights oraz wartości, na które należy je ustawić.

  12. Teraz możesz rozpocząć wdrażanie. Kliknij prawym przyciskiem myszy projekt i wybierz polecenie Wd > wdrażaj nowe wdrożenie.

    Pokazuje sposób wdrażania nowego projektu.

  13. Zaloguj się do konta platformy Azure, jeśli jeszcze tego nie zrobiono.

  14. Wybierz istniejącą grupę zasobów w subskrypcji lub utwórz nową, wybierz pozycjęazuredeploy.js na stronie , a następnie kliknij pozycję Edytuj parametry.

    Pokazuje, jak edytować parametry w azuredeploy.jspliku.

    Teraz będzie można edytować wszystkie parametry zdefiniowane w pliku szablonu w tabeli nice. Parametry definiujące wartości domyślne będą już mieć wartości domyślne, a parametry definiujące listę dozwolonych wartości będą wyświetlane jako listy rozwijane.

    Przedstawia parametry definiujące listę dozwolonych wartości jako listy rozwijane.

  15. Wypełnij wszystkie puste parametry i użyj adresu GitHub toDoApp w poleceni repoUrl. Następnie kliknij pozycję Zapisz.

    Pokazuje nowo wypełnione parametry dla azuredeploy.jspliku.

    Uwaga

    Autoskalowanie to funkcja oferowana w warstwie Standardowa lub wyższej, a alerty na poziomie planu są funkcjami oferowanymi w warstwie Podstawowa lub wyższej. Aby wyświetlić wszystkie nowe zasoby usługi App Szczegółowe informacje, należy ustawić parametr sku na standardową lub Premium.

  16. Kliknij pozycję Wdróż. W przypadku wyboru opcji Zapisz hasła hasło zostanie zapisane w pliku parametrów w postaci zwykłego tekstu. W przeciwnym razie zostanie poproszony o wprowadzenie hasła bazy danych podczas procesu wdrażania.

Gotowe. Teraz wystarczy przejść do witryny Azure Portal i narzędzia Azure Resource Explorer, aby wyświetlić nowe alerty i ustawienia skalowania automatycznego dodane do wdrożonej aplikacji JSON.

Kroki opisane w tej sekcji były realizowane głównie w następujący sposób:

  1. Przygotowanie pliku szablonu
  2. Utworzono plik parametrów do pracy z plikiem szablonu
  3. Wdrożono plik szablonu z plikiem parametrów

Ostatni krok można łatwo wykonać za pomocą polecenia cmdlet programu PowerShell. Aby zobaczyć, co Visual Studio zrobić podczas wdrażania aplikacji, otwórz Scripts\Deploy-AzureResourceGroup.ps1. Jest tam dużo kodu, ale zamierzam wyróżnić cały kod, który jest potrzebny do wdrożenia pliku szablonu z plikiem parametrów.

Wyświetla w skrypcie kod, który jest potrzebny do wdrożenia pliku szablonu z plikiem parametrów.

Ostatnie polecenie cmdlet, , jest New-AzureResourceGroup tym, które faktycznie wykonuje akcję. Wszystko to powinno pokazać, że przewidywanie wdrożenia aplikacji w chmurze przy użyciu narzędzi jest stosunkowo proste. Za każdym razem, gdy uruchamiasz polecenie cmdlet na tym samym szablonie z tym samym plikiem parametrów, otrzymasz ten sam wynik.

Podsumowanie

W DevOps powtarzalność i przewidywalność są kluczami do pomyślnego wdrożenia aplikacji o dużej skali składającej się z mikrousług. W tym samouczku aplikacja o dwóch mikrousługach została wdrożona na platformie Azure jako pojedyncza grupa zasobów przy użyciu Azure Resource Manager szablonu. Mamy nadzieję, że dzięki temu masz wiedzę potrzebną do rozpoczęcia konwertowania aplikacji na platformie Azure na szablon i będzie ona w stanie ją aprowizować i wdrażać w przewidywalny sposób.

Więcej zasobów

Następne kroki

Aby dowiedzieć się więcej o składni JSON i właściwościach typów zasobów wdrożonych w tym artykule, zobacz: