Ćwiczenie — tworzenie wyrażeń za pomocą funkcji usługi Azure Resource Manager

Ukończone

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.

  1. 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ć.

  2. 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": {}
    }
    
  3. 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 .

  1. W sekcji parameters zmień parametr storageName na storagePrefix.

  2. Zmień wartość atrybutu maxLength: parametru storagePrefix 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.

  3. Utwórz wyrażenie, aby ustawić unikatową nazwę konta magazynu. W sekcji resources zmień wartości atrybutów name: i displayName: 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.

  1. Otwórz okno terminalu przy użyciu menu Terminal.

  2. 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.

    A screenshot that shows the Visual Studio Code terminal window with bash in the drop-down menu.

  3. Jeśli nie masz odpowiedniej powłoki, wybierz pozycję Wybierz domyślną powłokę w menu rozwijanym.

  4. Wybierz opcję bash:

    Screenshot that shows the select shell list in the Visual Studio Code terminal window.

  5. W terminalu wybierz pozycję +, aby utworzyć nowy terminal z powłoką bash.

Logowanie się do platformy Azure

  1. 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
    
  2. 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.

  3. 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.

  4. Pobierz identyfikatory subskrypcji Concierge:

     az account list \
       --refresh \
       --query "[?contains(name, 'Concierge Subscription')].id" \
       --output table
    
  5. 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ę.

  1. Otwórz okno terminalu przy użyciu menu Terminal.

  2. 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.

    A screenshot that shows the Visual Studio Code terminal window with pwsh in the drop-down menu.

  3. Jeśli nie masz odpowiedniej powłoki, wybierz pozycję Wybierz domyślną powłokę w menu rozwijanym.

  4. Wybierz pozycję pwsh.

    Screenshot that shows the select shell list in the Visual Studio Code terminal window.

  5. Wybierz + w terminalu, aby utworzyć nowy terminal z programem pwsh jako powłoką.

Logowanie się na platformie Azure przy użyciu programu Azure PowerShell

  1. 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
    
  2. 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.

  3. 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: cf49fbbc-217c-4eb6-9eb5-a6a6c68295a0.

    Get-AzSubscription
    
  4. 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
    
  5. 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.

  1. W okienku po lewej stronie wybierz pozycję Grupy zasobów.

  2. Wybierz pozycję [nazwa grupy zasobów piaskownicy].

  3. W części Przegląd zostanie wyświetlona informacja o tym, że jedno wdrożenie się powiodło:

    Screenshot of the Azure portal that shows the resource group overview. The Deployments section shows that one deployment succeeded.

  4. Wybierz pozycję 1 — powodzenie, aby wyświetlić szczegóły wdrożenia:

    Screenshot of the Azure portal that shows deployments. One deployment is listed and has a status of Succeeded.

  5. Wybierz pozycję addfunction, aby zobaczyć, jakie zasoby zostały wdrożone:

    Screenshot of the Azure portal that shows that the storage account deployed.

  6. Pozostaw stronę otwartą w przeglądarce, aby można było ponownie sprawdzić wdrożenia w dalszej części modułu.