Blog: Cloud computing | Ms azure | Jezyki programowania i srodowiska programistyczne | Ms visual studio | Systemy microsoft | Ms visual studio 2

Przygotowanie VS Code do pracy z platformą Azure – część druga

Przygotowanie VS Code do pracy z platformą Azure – część druga
  • 1 159 views

W  tym artykule omówię następne rozszerzenie Visual Studio Code służące do pracy z platformą Azure. Głównym celem naszej pracy będą działania z szablonami usługi Resource Manager. Będziemy je wykonywać przede wszystkim z poziomu konsoli Visual Studio Code a nie portalu Azure.

Udostępnij!

Opiszę teraz wtyczkę Azure Resource Manager Templates Tools. Wtyczka ta służy do tworzenia szablonów usługi Resource Manager. Rozszerzenie zapewnia obsługę języków dla szablonów wdrażania usługi Azure Resource Manager i wyrażeń językowych szablonów.  Dostępne funkcjonalności to m.in.:

  • serwer językowy, który obsługuje pliki szablonów wdrażania usługi Azure Resource Manager
  • schemat Szablonu ARM w widoku konspektu dla łatwej nawigacji po dużych szablonach
  • kolorystyka wyrażeń w języku szablonów (TLE)
  • analiza i weryfikacja składni JSON, zgodność schematu JSON dla zasobów platformy Azure, pomoc w weryfikacji problemów z wyrażeniami łańcuchowymi, które mogłyby wpłynąć na wdrożenie.

Instalujemy rozszerzenie Azure Resource Manager (ARM) Tools.

Funkcje rozszerzenia:

  • kolorystyka wyrażeń w języku szablonów – parametry, zmienne, funkcje, nazwy i wyrażenia są oznaczone wyróżniającymi je kolorami.
  • IntelliSense – zapewnia możliwość uzupełnienia nazw funkcji, parametrów, zmiennych i referencji. Podczas pisania pojawiają się sugestie IntelliSense. Jeśli kontynuujemy pisanie znaków, lista członków (zmienne, metody itp.) zostanie przefiltrowana i uwzględni tylko członków zawierających wpisane znaki. Naciśnięcie klawiszy Tab lub Enter spowoduje wstawienie wybranego członka.
    • Wbudowane nazwy funkcji
    • Odniesienia do parametrów
    • Zmienne odniesienia
    • Właściwości ResourceGroup ()
    • Właściwości subskrypcji ()
    • Właściwości odwołań do zmiennych, które są obiektami
  • Pomoc podpisu dla parametrów funkcji – po najechaniu kursorem na nazwy funkcji, rozszerzenie wyświetli pomoc dotyczącą podpisu dla parametrów funkcji.
  • Przechodzenie do definicji odwołań do zmiennych i parametrów – można to zrobić za pomocą Ctrl + Click lub menu kontekstowego.
  • Szukanie definicji zmiennych i parametrów – aby otworzyć analizowany edytor, wykorzystujemy menu kontekstowe.
  • Znajdowanie wszystkich odniesień do zmiennych i parametrów – Shift + F12 lub menu kontekstowe.
  • Zmiana nazwy wszystkich odniesień dla zmiennych i parametrów – F2 lub menu kontekstowe.
  • Najazd kursorem na opis parametru.
  • Dopasowywanie nawiasów klamrowych – gdy kursor znajdzie się w pobliżu jednego z nich, pasujące nawiasy są podświetlane. Po kliknięciu klamry pasująca klamra również zostanie podświetlona.
  • Zmiana nazwy parametrów i zmiennych.
  • Funkcje szablonu zdefiniowane przez użytkownika – szczegóły w dokumentacji platformy Azure.
  • Zmienna iteracja („kopiuj bloki”) – szczegóły w dokumentacji platformy Azure.
  • Pokazywanie błędów i ostrzeżeń.
    • Błędy identyfikowane przez rozszerzenie obejmują:
      • niezdefiniowane odwołania do parametrów
      • niezdefiniowane odwołania do zmiennych
      • nierozpoznane nazwy funkcji
      • użycie funkcji referencyjnej () w definicji zmiennej
      • niepoprawna liczba argumentów w funkcjach
    • Ostrzeżenia obejmują:
        • niewykorzystane parametry
        • niewykorzystane zmienne
  • Snippets – fragmenty kodu. Wpisujemy „arm” w edytorze, aby zobaczyć dostępne fragmenty:
    • Rozpoczęcie pracy z nowym plikiem JSON / JSONC
      • arm! – Dodajemy strukturę pełnego pliku szablonu wdrażania – jeśli nie wyłączyliśmy automatycznego wykrywania plików szablonów, będziemy mieć teraz dostęp do wszystkich fragmentów dla plików „Szablon usługi Azure Resource Manager”.
      • armp! – Dodajemy strukturę pełnego pliku parametrów szablonu wdrażania. Następnie możemy użyć fragmentu wartości parametru „arm”, aby dodać nowe wartości parametrów do wdrożenia.
  • Dla istniejących plików szablonów zarządzania zasobami Azure.
    • arm-param, arm-variable, arm-userfunc, arm-userfunc-namespace – Dodajemy nowe parametry, zmienne, funkcje użytkownika i przestrzenie nazw użytkowników.
    • Zasoby – wpisujemy „arm”, aby zobaczyć pozostałe 70+ fragmentów do tworzenia nowych zasobów różnych typów. Wpisujemy na przykład „arm-ubuntu”, aby dodać wszystkie pięć zasobów niezbędnych do stworzenia podstawowej maszyny wirtualnej Ubuntu.
  • Automatyczne wykrywanie plików szablonów wdrażania. Domyślnie rozszerzenie rozpoznaje plik .json lub .jsonc jako plik szablonu wdrażania na podstawie schematu $ określonego w pliku, na przykład: https://schema.management.azure.com/schemas/2018-05-01/deploymentTemplate.json# i automatycznie przełączy język edytora na „Szablon usługi Azure Resource Manager”.

To by było na tyle w ramach wprowadzenia – przejdźmy teraz do strony praktycznej. Naszym celem będzie przygotowanie szablonu do wdrożenia konta magazynowego.

Krok 1 –   W konsoli Visual Studio Code tworzymy nowy plik i zapisujemy go z rozszerzeniem .json.

Krok 2 – Wpisujemy polecenie „arm” i wybieramy arm!

Pojawia się następujący komunikat:

“Would you like to use the latest schema for deployment template „StorageAccount.json” (note: some tools may be unable to process the latest schema)?”

Na razie wybieramy „Not now”.

Krok 3 – W polu “resources” wstawiamy kursor pomiędzy nawiasami kwadratowymi i wpisujemy polecenie arm-st. Pojawia się szablon arm-storage, który wybieramy.

Tak w tej chwili wygląda nasz szablon.

Domyślna nazwa konta magazynowego to „storageaccount1”. Wpisujemy własną unikatową nazwę pamiętając, że musi zawierać od 3 do 24 znaków będących cyframi i małymi literami. Nazwa zostanie zmieniona we wszystkich wystąpieniach danego elementu. Potem możemy także zmienić „accountType”; w moim przypadku będzie to „Standard_ZRS”.

Krok 4 – Wdrożenie nowego konta magazynowego z wykorzystaniem nowego szablonu za pomocą PowerShell.

Connect-AzAccount

New-AzResourceGroup -Name Storage99-RG -Location ‚West Europe’

$RG = Get-AzResourceGroup Storage99-RG

$templatefile = „C:\AzureRM\StorageAccount.json”

New-AzResourceGroupDeployment -ResourceGroupName $RG.ResourceGroupName -TemplateFile $templateFile -AsJob

Po sprawdzeniu czy zadanie się wykonało, wpisujemy w PowerShell kolejne polecenie:

Get-AzStorageAccount | Select-Object ResourceGroupName, StorageAccountName, Location,Kind,SKU | Format-List

Tak wygląda to na portalu Azure.

Krok 5 – Postaramy się teraz tak zmodyfikować nasz szablon, by mógł być wykorzystywany wielokrotnie. Dodajemy parametr przekazujący nazwę konta. Parametr „StorageName” jest identyfikowany jako ciąg i ma ustawiony przedział długości dla nazwy. Ustawiamy kursor pomiędzy nawiasami klamrowymi w bloku „parameters”, wpisujemy „arm-p” i wybieramy „arm-param”.

Modyfikujemy wpisy w bloku: „parameters” i resources” zgodnie z zamieszczonym niżej schematem. W ten sam sposób konfigurujemy parametr „StorageSKU”.

Testujemy działanie szablonu wykorzystując utworzoną poprzednio grupę zasobową:

$templatefile = „C:\AzureRM\StorageAccount_param2.json”

New-AzResourceGroupDeployment -ResourceGroupName $RG.ResourceGroupName -TemplateFile $templatefile -storageName „aastorageaccount110” -StorageSKU „Standard_LRS” -AsJob

Krok 6 – Dodajemy plik parametrów. Pliki parametrów to pliki JSON o strukturze podobnej do szablonu. W pliku podajemy wartości parametrów, które chcemy przekazać podczas wdrażania. Tworzymy nowy plik i zapisujemy w formacie json. Wpisujemy „armp” i otrzymujemy szkielet pliku parametrów.

Dodajemy parametry „storageName” i „storageSKU” zgodnie z zamieszczonym niżej schematem.

Testujemy działanie szablonu wykorzystując poprzednio utworzoną grupę zasobową:

$RG = Get-AzResourceGroup Storage99-RG

$templatefile = „C:\AzureRM\StorageAccount_param2.json”

$templateparam = „C:\AzureRM\Deploy_AZR_templates_fileparameter.json”

New-AzResourceGroupDeployment -ResourceGroupName $RG.ResourceGroupName -TemplateFile $templatefile -TemplateParameterFile $templateparam -AsJob

Na tym przykładzie zapoznaliśmy się ze sposobem przygotowania plików służących do wielokrotnego wykorzystania w zakresie wdrożenia zasobów platformy Azure.

Uwaga końcowa:

Azure Resource Manager (ARM) Tools znajduje się jeszcze w fazie “Preview”. Jeśli wstawimy zasób typu „storage account”, to element zasobu: „apiVersion”: „2015-06-15” będzie w przestarzałym schemacie.  Z tego powodu pewne zasoby mogą mieć inną nazwę lub nie być obsługiwane w tej wersji api. W przypadku zasobu „storage account”, aktualną wersją api jest „2019-04-01”. Poniżej znajduje się przykład pliku już zmodyfikowanego do nowej wersji api.