Ćwiczenie — tworzenie wyrażeń za pomocą funkcji usługi Azure Resource Manager
Uwaga
Przy pierwszym aktywowaniu piaskownicy i zaakceptowaniu warunków konto Microsoft zostaje skojarzone z nowym katalogiem platformy Azure o nazwie Microsoft Learn Sandbox. Zostanie też do Ciebie przypisana specjalna subskrypcja o nazwie Subskrypcja Concierge.
W tym ćwiczeniu utworzysz wyrażenie przy użyciu funkcji szablonu usługi Azure Resource Manager (ARM). To wyrażenie tworzy unikatową nazwę dla każdej grupy zasobów, łącząc wprowadzony prefiks ze skrótem identyfikatora grupy zasobów. W ten sposób powstają nazwy kont usługi Azure Storage takie jak dev2hu6sbtr5
i staging5his8hgr67
.
W tym ćwiczeniu użyjesz narzędzi usługi Azure Resource Manager dla programu Visual Studio Code. Pamiętaj, aby zainstalować to rozszerzenie w programie Visual Studio Code.
Tworzenie pliku szablonu usługi ARM
W poprzednim module został utworzony szablon usługi ARM wdrażający konto magazynu. Do tego pliku zostały dodane parametry i dane wyjściowe. W tym miejscu zaczniesz od tego pliku, ale dane wyjściowe zostaną usunięte, aby zmniejszyć obciążenie.
Otwórz program Visual Studio Code i utwórz plik o nazwie azuredeploy.json. Jeśli masz ten plik z poprzedniego modułu, możesz go użyć.
Zastąp zawartość pliku następującym kodem:
{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storageName": { "type": "string", "minLength": 3, "maxLength": 24 }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] } }, "functions": [], "variables": {}, "resources": [{ "name": "[parameters('storageName')]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": { "displayName": "[parameters('storageName')]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]" } }], "outputs": {} }
Jeśli nie znasz treści poprzedniego modułu, poświęć chwilę na przejrzenie tego pliku. Zwróć uwagę na parametr
storageName
. Za pomocą tego parametru przekazano unikatową nazwę dla konta magazynu.
Tworzenie wyrażenia ustawiającego unikatową nazwę konta magazynu
Zamiast przekazywać nazwę konta magazynu, zmień parametr , aby zastosować prefiks nazwy konta magazynu. Ten parametr jest przekazywany do funkcji w wyrażeniu concat
.
W sekcji
parameters
zmień parametrstorageName
na storagePrefix.Zmień wartość atrybutu
maxLength:
parametrustoragePrefix
na 11. Maksymalna długość nazwy konta magazynu wynosi 24 znaki, dlatego chcesz mieć pewność, że dodany skrót z utworzonej funkcji nie powoduje, że nazwa będzie dłuższa niż 24.Utwórz wyrażenie, aby ustawić unikatową nazwę konta magazynu. W sekcji
resources
zmień wartości atrybutówname:
idisplayName:
z"[parameters('storageName')]"
na "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]". To wyrażenie omówiliśmy w ramach poprzedniej lekcji. Plik powinien teraz wyglądać następująco:{ "$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentTemplate.json#", "contentVersion": "1.0.0.0", "parameters": { "storagePrefix": { "type": "string", "minLength": 3, "maxLength": 11 }, "storageSKU": { "type": "string", "defaultValue": "Standard_LRS", "allowedValues": [ "Standard_LRS", "Standard_GRS", "Standard_RAGRS", "Standard_ZRS", "Premium_LRS", "Premium_ZRS", "Standard_GZRS", "Standard_RAGZRS" ] } }, "functions": [], "variables": {}, "resources": [{ "name": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]", "type": "Microsoft.Storage/storageAccounts", "apiVersion": "2019-06-01", "tags": { "displayName": "[toLower(concat(parameters('storagePrefix'),uniqueString(resourceGroup().id)))]" }, "location": "[resourceGroup().location]", "kind": "StorageV2", "sku": { "name": "[parameters('storageSKU')]" } }], "outputs": {} }
Wdrażanie szablonu usługi ARM na platformie Azure
Aby wdrożyć ten szablon na platformie Azure, musisz zalogować się na konto platformy Azure z poziomu terminalu programu Visual Studio Code. Upewnij się, że masz zainstalowane narzędzia interfejsu wiersza polecenia platformy Azure. Pamiętaj też, aby zalogować się na to konto, którego użyto do aktywowania piaskownicy.
Otwórz okno terminalu przy użyciu menu Terminal.
Jeśli w menu rozwijanym po prawej stronie okna terminalu widać pozycję bash, oznacza to, że pracujesz we właściwej powłoce. Możesz przejść do następnej sekcji.
Jeśli nie masz odpowiedniej powłoki, wybierz pozycję Wybierz domyślną powłokę w menu rozwijanym.
Wybierz opcję bash:
W terminalu wybierz pozycję +, aby utworzyć nowy terminal z powłoką bash.
Logowanie się do platformy Azure
Z poziomu terminalu w programie Visual Studio Code uruchom następujące polecenie, aby zalogować się na platformie Azure. Uruchomienie tego polecenia spowoduje otwarcie przeglądarki, która umożliwia zalogowanie się do konta:
az login
Po zalogowaniu się w terminalu zostanie wyświetlona lista subskrypcji skojarzonych z kontem. Jeśli aktywowano piaskownicę, zobaczysz subskrypcję o nazwie Subskrypcja Concierge. Korzystaj z niej do końca tego ćwiczenia.
Ustaw domyślną subskrypcję dla wszystkich poleceń interfejsu wiersza polecenia platformy Azure, które będą uruchamiane w tej sesji:
az account set --subscription "Concierge Subscription"
Uwaga
Jeśli ostatnio korzystano z więcej niż jednej piaskownicy, na liście może się znajdować kilka subskrypcji Concierge. W takim przypadku wykonaj dwa kolejne kroki, aby ustawić domyślną subskrypcję. Jeśli powyższe polecenie zakończyło się pomyślnie, pomiń dwa następne kroki.
Pobierz identyfikatory subskrypcji Concierge:
az account list \ --refresh \ --query "[?contains(name, 'Concierge Subscription')].id" \ --output table
Ustaw domyślną subskrypcję przy użyciu identyfikatora subskrypcji. Zastąp ciąg
{your subscription ID}
identyfikatorem najnowszej subskrypcji Concierge.az account set --subscription {your subscription ID}
Ustawianie domyślnej grupy zasobów
Ustaw grupę zasobów utworzoną automatycznie w środowisku piaskownicy jako domyślną grupę zasobów. Dzięki temu będzie można pominąć ten parametr w pozostałych poleceniach interfejsu wiersza polecenia platformy Azure w tym ćwiczeniu.
az configure --defaults group=<rgn>[sandbox resource group name]</rgn>
Wdrażanie szablonu na platformie Azure
W poprzednim module zapoznaliśmy się z poleceniami wdrażania. W tej części użyjemy polecenia az deployment group create
interfejsu wiersza polecenia platformy Azure.
Wdróż szablon przy użyciu poleceń interfejsu wiersza polecenia platformy Azure w terminalu programu Visual Studio Code. Pamiętaj, aby zastąpić ciąg
{your-prefix}
innym. Możesz na przykład użyć ciągu storage (magazyn).templateFile="azuredeploy.json" today=$(date +"%d-%b-%Y") DeploymentName="addfunction-"$today az deployment group create \ --name $DeploymentName \ --template-file $templateFile \ --parameters storagePrefix={your-prefix}
W pierwszej sekcji kodu ustawiasz zmienne interfejsu wiersza polecenia platformy Azure dla ścieżki do pliku szablonu, który chcesz wdrożyć, oraz dla nazwy wdrożenia. Następnie użyto
az deployment group create
polecenia w celu wdrożenia szablonu na platformie Azure.W terminalu powinien zostać wyświetlony komunikat
Running...
.
Aby wdrożyć ten szablon na platformie Azure, musisz zalogować się na konto platformy Azure z poziomu terminalu programu Visual Studio Code. Upewnij się, że masz zainstalowane narzędzia programu Azure PowerShell i że logujesz się na to konto, za pomocą którego aktywowano piaskownicę.
Otwórz okno terminalu przy użyciu menu Terminal.
Jeśli w menu rozwijanym po prawej stronie okna terminalu widać pozycję pwsh, oznacza to, że pracujesz we właściwej powłoce. Możesz przejść do następnej sekcji.
Jeśli nie masz odpowiedniej powłoki, wybierz pozycję Wybierz domyślną powłokę w menu rozwijanym.
Wybierz pozycję pwsh.
Wybierz + w terminalu, aby utworzyć nowy terminal z programem pwsh jako powłoką.
Logowanie się na platformie Azure przy użyciu programu Azure PowerShell
Z poziomu terminalu w programie Visual Studio Code uruchom następujące polecenie, aby zalogować się na platformie Azure. Po uruchomieniu tego polecenia zostanie wyświetlony monit o otwarcie przeglądarki pod adresem URL, który umożliwia zalogowanie się do konta. Użyj kodu podanego w monicie. Upewnij się, że logujesz się przy użyciu tego samego konta, które zostało użyte do aktywowania piaskownicy.
Connect-AzAccount
Po zalogowaniu się w terminalu zostanie wyświetlona lista subskrypcji skojarzonych z kontem. Jeśli aktywowano piaskownicę, zobaczysz subskrypcję o nazwie Subskrypcja Concierge. Korzystaj z niej do końca tego ćwiczenia.
Ustaw domyślną subskrypcję dla wszystkich poleceń interfejsu wiersza polecenia platformy Azure, które będą uruchamiane w tej sesji.
Uzyskaj identyfikator subskrypcji. Polecenie wyświetla listę subskrypcji i ich identyfikatorów. Identyfikatory subskrypcji znajdują się w drugiej kolumnie. Poszukaj subskrypcji
Concierge Subscription
i skopiuj wartość z drugiej kolumny. Wygląda to mniej więcej tak:aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e
.Get-AzSubscription
Zmień aktywną subskrypcję na subskrypcję Concierge. Pamiętaj, aby zastąpić
{Your subscription ID}
skopiowany identyfikator.$context = Get-AzSubscription -SubscriptionId {Your subscription ID} Set-AzContext $context
Ustaw grupę zasobów utworzoną automatycznie w środowisku piaskownicy jako domyślną grupę zasobów. Dzięki temu będzie można pominąć ten parametr w pozostałych poleceniach programu Azure PowerShell w tym ćwiczeniu.
Set-AzDefault -ResourceGroupName <rgn>[sandbox resource group name]</rgn>
Wdrażanie szablonu na platformie Azure
W poprzednim module zapoznaliśmy się z poleceniami wdrażania. Tutaj używamy polecenie programu Azure PowerShell New-AzResourceGroupDeployment
.
Wdróż szablon przy użyciu poleceń programu Azure PowerShell w terminalu programu Visual Studio Code. Pamiętaj, aby zastąpić ciąg
{your-prefix}
innym. Możesz na przykład użyć ciągu storage (magazyn).$templateFile = "azuredeploy.json" $today=Get-Date -Format "MM-dd-yyyy" $deploymentName="addfunction-"+"$today" New-AzResourceGroupDeployment ` -Name $deploymentName ` -TemplateFile $templateFile ` -storagePrefix {your-prefix}
W pierwszej sekcji tego kodu ustawisz zmienne programu Azure PowerShell dla ścieżki do pliku szablonu, który chcesz wdrożyć, oraz nazwę wdrożenia. Następnie użyto New-AzResourceGroupDeployment
polecenia w celu wdrożenia szablonu na platformie Azure.
Sprawdzanie wdrożenia
Po zakończeniu wdrażania przejdź do witryny Azure Portal i upewnij się, że jesteś w subskrypcji piaskownicy. Aby sprawdzić subskrypcję, wybierz swój awatar w prawym górnym rogu strony. Wybierz pozycję Przełącz katalog. Z listy wybierz katalog Microsoft Learn Sandbox.
W okienku po lewej stronie wybierz pozycję Grupy zasobów.
Wybierz pozycję
[nazwa grupy zasobów piaskownicy] .W części Przegląd zostanie wyświetlona informacja o tym, że jedno wdrożenie się powiodło:
Wybierz pozycję 1 — powodzenie, aby wyświetlić szczegóły wdrożenia:
Wybierz pozycję addfunction, aby zobaczyć, jakie zasoby zostały wdrożone:
Pozostaw stronę otwartą w przeglądarce, aby można było ponownie sprawdzić wdrożenia w dalszej części modułu.