In ARM, Azure, Visual Studio Written by

ARM + Visual studio. Jak ułatwić sobie życie

ARM(Azure Resource Manager) to dla wielu osób czarna magia, ale chcąc nie chcąc jest to wielkie ułatwianie dla użytkownika, kiedy potrzebuje w jednej chwili postawić kilkanaście usług. Wyobraźmy sobie sytuację, gdy pozyskujemy 2 nowych klientów na dwóch różnych kontynentach.

Aplikacja jest dalej rozwijana, ale już gotowa na tyle, by udostępnić ją na produkcji. Każdy z tych klientów posiada wersje testową i produkcyjną serwera. Dodatkowo musimy także udostępnić serwer dla naszych developerów. W sumie daje nam to 5 instancji.  Najprostsza aplikacja to baza danych + aplikacja webowa. W naszym przykładzie użytkownik musiałby przy użyciu portalu 10 razy wyklikać powtarzający się element. A co jeżeli tych usług będzie 5? Czy chciałoby się komuś klikać 25 razy? I tutaj właśnie z pomocą przychodzi nam ARM.

ARM w Visual Studio

ARM to szablon w formie pliku json. Dzięki niemu możemy przy pomocy PowerShell, VS Code, Visual Studio czy też VSTS postawić usługi, które nas interesują. W tym wpisie zaprezentuję jak to zrobić za pomocą Visual Studio. Jeżeli jesteś zainteresowany zrobieniem tego samego przy użyciu VS Code to zapraszam na tego bloga 🙂

Stwórzmy pierwszy szablon. VisualStudio 2017 > New Project > Installed > Visual C# > Cloud > AzureResourceGroup

ekran VisualStudio 2017

Kolejny ekran to wybór szablonu. MS jest podłączony z szablonami github-a, dzięki czemu mamy większą możliwość skorzystania z gotowych rozwiązań.

ekran Select Azure Template

Wybieramy Blank Template (możemy także wybrać WebApp + sql, lecz wtedy otrzymamy wygenerowane więcej kodu, który będzie nam trudniej zrozumieć). Visual bardzo ułatwia pracę ze względu na to, że posiada JSON Outline (jeżeli nie masz takiego okna, możesz je wyszukać). Dzięki temu wiemy, jakie mamy dostępne parametry, usługi itp. Kolejny plus: przy kliknięciu 2 razy na poszczególne parametry czy też zasoby, Visual sam podświetli kawałek kodu, który za niego odpowiada.

Działanie ARM w praktyce

Skopiujmy teraz do projektu poniższy kod:

[snippet slug=arm-sql-web lang=json]

  • Parametry to nic innego jak zmienne, które wpisujemy podczas deploy-u naszej aplikacji. Jak można zauważyć część parametrów jest stała. Użytkownik za pomocą wysuwanej listy wybiera konkretną wartość. Najlepiej sprawdza się to, kiedy chcemy wybrać cennik czy też lokalizację danej usługi(np. ServicePlanSkuName, SqlLocation).
  • Variables. Tam akurat nic nie mamy. W tym miejscu wpisujemy wartości stałe, których użytkownik nie może zmienić podczas deploy-u aplikacji.
  • Resources. Tutaj wpisujemy, co chcemy stworzyć oraz nadajemy konkretne wartości takie jak nazwa, lokalizacja czy cena. Dla przykładu, ServicePlan przyjmuje taką wartość:
    “name”: “[parameters(‘ServicePlanName’)]”. Oznacza to, że nazwa tej usługi będzie zabrana bezpośrednio z parametrów. Każda z usług może mieć kolejne resources pod sobą. Nasz sql serwer podczas stawiania stworzy nam również bazę danych. Kiedy wczytamy się we wszystko, co jest napisane, łatwo zauważyć, że nie jest to takie straszne 🙂

Czas wrzucić naszą aplikację na Azure!

Kliknij prawym na Projekt > Deploy > New

ekran aplikacja Azure

Kolejnym krokiem jest uzupełnienie danych.

ekran uzupełnienie danych

Jeżeli nie chcemy ponownie wpisywać hasła w konsoli PowerShell, zaznaczamy checboxa, następnie zapisujemy zmiany i deploy 🙂

W Output (jeżeli nie widzisz, to wyszukaj przy pomocy wyszukiwarki visuala) zostaje zwrócona informacja czy deploy się powiódł oraz wyświetla ewentualne błędy. W pliku parameters.json zostały zapisane wszystkie wartości, które podaliśmy podczas deploy. Tutaj drobna uwaga: jeżeli nie chcesz, aby ktoś “włamał” Ci się do usług Azure lepiej wyczyść ten folder. Stan deploy-u możesz sprawdzić w portalu

ekran deployments

Jeżeli chcesz zobaczyć więcej moich szablonów ARM zapraszam na github:)

(Visited 133 times, 1 visits today)

Last modified: 10 maja 2022

Close