Tworzenie i wdrażanie grup zasobów platformy Azure za pomocą programu Visual Studio

Program Visual Studio umożliwia utworzenie projektu służącego do wdrażania infrastruktury i kodu na platformie Azure. Na przykład możesz wdrożyć hosta internetowego, witrynę internetową i kod witryny internetowej. Program Visual Studio zapewnia wiele różnych szablonów początkowych do wdrażania typowych scenariuszy. W tym artykule wdrożysz aplikację internetową.

W tym artykule pokazano, jak używać programu Visual Studio 2019lub nowszego z zainstalowanymi obciążeniami programistyki i ASP.NET platformy Azure. Jeśli korzystasz z Visual Studio 2017, Środowisko jest w dużym stopniu takie samo.

Tworzenie projektu grupy zasobów platformy Azure

W tej sekcji utworzysz projekt grupy zasobów platformy Azure za pomocą szablonu aplikacji internetowej.

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

  2. Wybierz szablon projektu grupy zasobów platformy Azure i pozycję Dalej.

    Zrzut ekranu przedstawia okno Tworzenie nowego projektu z wyróżniona grupę zasobów platformy Azure i przyciskiem Dalej.

  3. Nadaj projektowi nazwę. Inne ustawienia domyślne są prawdopodobnie w porządku, ale przejrzyj je, aby upewnić się, że działają w Twoim środowisku. Po zakończeniu wybierz pozycję Utwórz.

    Tworzenie projektu

  4. Wybierz szablon, który ma zostać wdrożony w usłudze Azure Resource Manager. Należy zauważyć, że dostępnych jest wiele różnych opcji, zależnie od typu projektu, który chcesz wdrożyć. Na podstawie tego artykułu wybierz szablon Aplikacja internetowa i przycisk OK.

    Wybieranie szablonu

    Wybrany szablon jest tylko punktem wyjściowym. Możesz dodać lub usunąć zasoby, aby wykonać dany scenariusz.

  5. Visual Studio tworzy projekt wdrożenia grupy zasobów dla aplikacji internetowej. Aby wyświetlić pliki projektu, przyjrzyj się węzłem w projekcie wdrożenia.

    Pokazywanie węzłów

    Ponieważ wybrano szablon aplikacji internetowej, zobaczysz następujące pliki:

    Nazwa pliku Opis
    Deploy-AzureResourceGroup.ps1 Skrypt programu PowerShell, który uruchamia polecenia w celu wdrożenia do usługi Azure Resource Manager. Visual Studio szablon jest wdrażany za pomocą tego skryptu programu PowerShell.
    WebSite.jswł. Szablon usługi Resource Manager określający infrastrukturę, którą chcesz wdrożyć na platformie Azure, oraz parametry, które można podać podczas wdrażania. Umożliwia on również definiowanie zależności między zasobami, tak aby usługa Resource Manager wdrożyła je w odpowiedniej kolejności.
    WebSite.parameters.jswł. Plik parametrów zawierający wartości wymagane przez szablon. Poszczególne wdrożenia są dostosowywane za pomocą przekazywanych wartości parametrów. Zwróć uwagę, że akcja kompilacji jest ustawiona na wartość Zawartość. Jeśli dodasz więcej plików parametrów, upewnij się, że akcja kompilacji jest ustawiona na wartość Zawartość.

    Wszystkie projekty wdrażania grup zasobów zawierają te podstawowe pliki. Inne projekty mogą mieć więcej plików do obsługi innych funkcji.

Dostosowywanie Resource Manager szablonu

Projekt wdrożenia można dostosować, modyfikując szablon Resource Manager opisujący zasoby, które chcesz wdrożyć. Aby uzyskać informacje na temat elementów szablonu usługi Resource Manager, zobacz Authoring Azure Resource Manager templates (Tworzenie szablonów usługi Azure Resource Manager).

  1. Aby pracować nad szablonem, otwórz WebSite.jsna stronie.

  2. Edytor programu Visual Studio udostępnia narzędzia pomocne podczas edytowania szablonu usługi Resource Manager. Okno Konspekt pliku JSON ułatwia wyświetlanie elementów zdefiniowanych w szablonie.

    Pokaż konspekt JSON

  3. Wybierz element w konspekcie, aby przejść do tej części szablonu.

    Nawigowanie po danych JSON

  4. Nowy zasób można dodać, wybierając przycisk Dodaj zasób u góry okna Konspekt pliku JSON lub klikając prawym przyciskiem myszy węzeł zasoby i wybierając polecenie Dodaj nowy zasób.

    Zrzut ekranu przedstawia okno Konspekt JSON z wyróżnioną opcją Dodaj nowy zasób.

  5. Wybierz Storage konto i nadaj mu nazwę. Podaj nazwę nie dłuższą niż 11 znaków, zawierającą tylko cyfry i małe litery.

    Dodawanie magazynu

  6. Należy zauważyć, że dodany został nie tylko zasób, ale również parametr typu konta magazynu oraz zmienna nazwy konta magazynu.

    Pokaż konspekt

  7. Parametr dla typu konta magazynu jest wstępnie zdefiniowany z dozwolonymi typami i typem domyślnym. Możesz pozostawić te wartości bez zmian lub edytować je dla danego scenariusza. Jeśli nie chcesz, aby inne osoby wdrażały konta magazynu Premium_LRS przy użyciu tego szablonu, usuń go z dozwolonych typów.

    "demoaccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_ZRS",
        "Standard_GRS",
        "Standard_RAGRS"
      ]
    }
    
  8. Program Visual Studio oferuje również funkcję IntelliSense ułatwiającą zrozumienie dostępnych właściwości podczas edytowania szablonu. Aby na przykład edytować właściwości planu usługi App Service, przejdź do zasobu HostingPlan i dodaj wartość dla obiektu properties. Należy zauważyć, że funkcja IntelliSense wyświetla dostępne wartości oraz ich opisy.

    Pokazywanie funkcji IntelliSense

    Możesz ustawić wartość numberOfWorkers na 1 i zapisać plik.

    "properties": {
      "name": "[parameters('hostingPlanName')]",
      "numberOfWorkers": 1
    }
    
  9. Otwórz plik WebSite.parameters.jsplik . Plik parametrów umożliwia przekazania wartości podczas wdrażania, które dostosowywają wdrażany zasób. Nadaj planowi hostingu nazwę i zapisz plik.

    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "hostingPlanName": {
          "value": "demoHostPlan"
        }
      }
    }
    

Wdrażanie projektu na platformie Azure

Teraz możesz wdrożyć projekt w grupie zasobów.

Domyślnie skrypt programu PowerShell (Deploy-AzureResourceGroup.ps1) w projekcie używa modułu AzureRM. Jeśli nadal masz zainstalowany moduł AzureRM i chcesz nadal z niego korzystać, możesz użyć tego skryptu domyślnego. Za pomocą tego skryptu możesz użyć interfejsu Visual Studio, aby wdrożyć rozwiązanie.

Jednak w przypadku migracji do nowego modułu Aznależy dodać nowy skrypt do projektu. Aby dodać skrypt, który używa modułu Az, skopiuj Deploy-AzTemplate.ps1 skryptu i dodaj go do projektu. Aby użyć tego skryptu do wdrożenia, należy uruchomić go z konsoli programu PowerShell zamiast Visual Studio interfejsu wdrażania programu .

Oba podejścia przedstawiono w tym artykule. W tym artykule domyślny skrypt jest określany jako skrypt modułu AzureRM, a nowy skrypt jako skrypt modułu Az.

Skrypt modułu Az

W przypadku skryptu modułu Az otwórz konsolę programu PowerShell i uruchom:

.\Deploy-AzTemplate.ps1 -ArtifactStagingDirectory . -Location centralus -TemplateFile WebSite.json -TemplateParametersFile WebSite.parameters.json

Skrypt modułu AzureRM

W przypadku skryptu modułu AzureRM użyj Visual Studio:

  1. W menu skrótów węzła projektu wdrożenia wybierz pozycję Wd > wdrażaj nowy.

    Element menu Nowe wdrożenie

  2. Zostanie wyświetlone okno dialogowe Wdrażanie w grupie zasobów. W polu listy rozwijanej Grupa zasobów wybierz istniejącą grupę zasobów lub utwórz nową. Wybierz pozycję Wdróż.

    Okno dialogowe Wdrażanie w grupie zasobów

  3. W oknach Dane wyjściowe jest wyświetlany stan wdrożenia. Po zakończeniu wdrażania ostatni komunikat wskazuje pomyślne wdrożenie i jest podobny do następującego:

    18:00:58 - Successfully deployed template 'website.json' to resource group 'ExampleAppDeploy'.
    

Wyświetlanie wdrożonych zasobów

Sprawdźmy wyniki.

  1. W przeglądarce otwórz okno Azure Portal i zaloguj się do swojego konta. Aby wyświetlić grupę zasobów wybierz pozycję Grupy zasobów, a następnie wybierz grupę, do której wykonano wdrożenie.

  2. Zostaną wyświetlone wszystkie wdrożone zasoby. Należy zauważyć, że nazwa konta magazynu nie jest identyczna z określoną podczas dodawania tego zasobu. Konto magazynu musi być unikatowe. Szablon automatycznie dodaje ciąg znaków do podanej nazwy, aby utworzyć unikatową nazwę.

    Wyświetlanie zasobów

Dodawanie kodu do projektu

Wdrożono już infrastrukturę aplikacji, ale z projektem nie został wdrożony rzeczywisty kod.

  1. Dodaj projekt do rozwiązania programu Visual Studio. Kliknij prawym przyciskiem myszy rozwiązanie, a następnie wybierz pozycję Dodaj nowy > Project.

    Dodawanie projektu

  2. Dodaj ASP.NET Core internetową.

    Dodawanie aplikacji internetowej

  3. Nadaj nazwę aplikacji internetowej, a następnie wybierz pozycję Utwórz.

    Nazywanie aplikacji internetowej

  4. Wybierz pozycję Aplikacja internetowa i utwórz .

    Wybieranie aplikacji internetowej

  5. Po utworzeniu aplikacji internetowej przez program Visual Studio oba projekty są wyświetlane w rozwiązaniu.

    Pokazywanie projektów

  6. Musisz teraz upewnić się, że projekt grupy zasobów wie o nowym projekcie. Wstecz do projektu grupy zasobów (ExampleAppDeploy). Kliknij prawym przyciskiem myszy pozycję Odwołania i wybierz polecenie Dodaj odwołanie.

    Zrzut ekranu przedstawia menu ExampleAppDeploy z wyróżnioną opcją Dodaj odwołanie.

  7. Wybierz projekt aplikacji internetowej, który został utworzony.

    Dodawanie odwołania

    Dodając odwołanie, łączysz projekt aplikacji internetowej z projektem grupy zasobów i automatycznie ustawiasz niektóre właściwości. Te właściwości będą wyświetlane w oknie Właściwości odwołania. Właściwość Include File Path zawiera ścieżkę, w której zostanie utworzony pakiet. Zanotuj folder (ExampleApp) i plik (package.zip). Musisz znać te wartości, ponieważ są one podawane jako parametry podczas wdrażania aplikacji.

    Zobacz informacje

  8. Wstecz do szablonu (WebSite.jssię) i dodaj zasób do szablonu.

    Dodawanie zasobu

  9. Tym razem wybierz pozycję Web Deploy dla usługi Web Apps.

    Dodawanie usługi Web Deploy

    Zapisz szablon.

  10. Szablon zawiera kilka nowych parametrów. Zostały one dodane w poprzednim kroku. Nie musisz podaniem wartości dla _artifactsLocation ani _artifactsLocationSasToken ponieważ te wartości są generowane automatycznie. Należy jednak ustawić nazwę folderu i pliku na ścieżkę zawierającą pakiet wdrożeniowy. Nazwy tych parametrów kończą się na PackageFolder i PackageFileName. Pierwsza część nazwy to nazwa dodanego Web Deploy zasobów. W tym artykule mają nazwy ExampleAppPackageFolder i ExampleAppPackageFileName.

    Otwórz Website.parameters.jsi ustaw te parametry na wartości, które widzieliśmy we właściwościach odwołania. Ustaw wartość ExampleAppPackageFolder na nazwę folderu. Ustaw parametr ExampleAppPackageFileName na nazwę pliku zip.

    {
      "$schema": "https://schema.management.azure.com/schemas/2015-01-01/deploymentParameters.json#",
      "contentVersion": "1.0.0.0",
      "parameters": {
        "hostingPlanName": {
          "value": "demoHostPlan"
        },
        "ExampleAppPackageFolder": {
          "value": "ExampleApp"
        },
        "ExampleAppPackageFileName": {
          "value": "package.zip"
        }
      }
    }
    

Wdrażanie kodu z infrastrukturą

Ponieważ dodano kod do projektu, wdrożenie jest tym razem nieco inne. Podczas wdrażania artefakty projektu są umieszczane w miejscu, do Resource Manager uzyskać dostęp. Artefakty są przechowytywowane na konto magazynu.

Skrypt modułu Az

Jeśli używasz skryptu modułu Az, musisz wprowadzić jedną małą zmianę w szablonie. Ten skrypt dodaje ukośnik do lokalizacji artefaktów, ale szablon nie oczekuje tego ukośnika. Otwórz WebSite.jsi znajdź właściwości rozszerzenia MSDeploy. Ma właściwość o nazwie packageUri. Usuń ukośnik między lokalizacją artefaktów a folderem pakietu.

Powinno to wyglądać następująco:

"packageUri": "[concat(parameters('_artifactsLocation'), parameters('ExampleAppPackageFolder'), '/', parameters('ExampleAppPackageFileName'), parameters('_artifactsLocationSasToken'))]",

Zwróć uwagę, że w poprzednim przykładzie nie ma między parametrami '/', ('_artifactsLocation') i parameters('ExampleAppPackageFolder').

Ponownie skompilować projekt. Budowania projektu zapewnia, że pliki, które należy wdrożyć, są dodawane do folderu przejściowego.

Teraz otwórz konsolę programu PowerShell i uruchom:

.\Deploy-AzTemplate.ps1 -ArtifactStagingDirectory .\bin\Debug\staging\ExampleAppDeploy -Location centralus -TemplateFile WebSite.json -TemplateParametersFile WebSite.parameters.json -UploadArtifacts -StorageAccountName <storage-account-name>

Skrypt modułu AzureRM

W przypadku skryptu modułu AzureRM użyj Visual Studio:

  1. Aby ponownie wdrożyć, wybierz pozycję Wd wdrażaj i wdrożoną wcześniej grupę zasobów.

    Ponowne wdychaj projekt

  2. Wybierz konto magazynu wdrożone z tą grupą zasobów dla konta magazynu artefaktów.

    Ponowne wdrażanie wdrożenia w Internecie

Wyświetlanie aplikacji internetowej

  1. Po zakończeniu wdrażania wybierz aplikację internetową w witrynie portalu. Wybierz adres URL, aby przejść do lokacji.

    Przeglądanie witryny

  2. Zobaczysz, że domyślna aplikacja ASP.NET została pomyślnie wdrożona.

    Wyświetlanie wdrożonej aplikacji

Dodawanie pulpitu nawigacyjnego operacji

Możesz korzystać nie tylko z zasobów dostępnych z poziomu interfejsu programu Visual Studio. Można dostosować wdrożenie, dodając do szablonu zasoby niestandardowe. Aby zobaczyć, jak działa dodawanie zasobu, dodasz operacyjny pulpit nawigacyjny w celu zarządzania wdrożonymi zasobami.

  1. Otwórz plik WebSite.jsdodaj następujący kod JSON po zasobie konta magazynu, ale przed ] zamknięciem sekcji zasobów.

     ,{
       "properties": {
         "lenses": {
           "0": {
             "order": 0,
             "parts": {
               "0": {
                 "position": {
                   "x": 0,
                   "y": 0,
                   "colSpan": 4,
                   "rowSpan": 6
                 },
                 "metadata": {
                   "inputs": [
                     {
                       "name": "resourceGroup",
                       "isOptional": true
                     },
                     {
                       "name": "id",
                       "value": "[resourceGroup().id]",
                       "isOptional": true
                     }
                   ],
                   "type": "Extension/HubsExtension/PartType/ResourceGroupMapPinnedPart"
                 }
               },
               "1": {
                 "position": {
                   "x": 4,
                   "y": 0,
                   "rowSpan": 3,
                   "colSpan": 4
                 },
                 "metadata": {
                   "inputs": [],
                   "type": "Extension[azure]/HubsExtension/PartType/MarkdownPart",
                   "settings": {
                     "content": {
                       "settings": {
                         "content": "__Customizations__\n\nUse this dashboard to create and share the operational views of services critical to the application performing. To customize simply pin components to the dashboard and then publish when you're done. Others will see your changes when you publish and share the dashboard.\n\nYou can customize this text too. It supports plain text, __Markdown__, and even limited HTML like images <img width='10' src='https://portal.azure.com/favicon.ico'/> and <a href='https://azure.microsoft.com' target='_blank'>links</a> that open in a new tab.\n",
                         "title": "Operations",
                         "subtitle": "[resourceGroup().name]"
                       }
                     }
                   }
                 }
               }
             }
           }
         },
         "metadata": {
           "model": {
             "timeRange": {
               "value": {
                 "relative": {
                   "duration": 24,
                   "timeUnit": 1
                 }
               },
               "type": "MsPortalFx.Composition.Configuration.ValueTypes.TimeRange"
             }
           }
         }
       },
       "type": "Microsoft.Portal/dashboards",
       "apiVersion": "2015-08-01-preview",
       "name": "[concat('ARM-',resourceGroup().name)]",
       "location": "[resourceGroup().location]",
       "tags": {
         "hidden-title": "[concat('OPS-',resourceGroup().name)]"
       }
     }
    
  2. Ponownie wdychaj projekt.

  3. Po zakończeniu wdrażania wyświetl pulpit nawigacyjny w portalu. Wybierz pozycję Pulpit nawigacyjny i wybierz wdrożony pulpit nawigacyjny.

    Zrzut ekranu przedstawia stronę Pulpit nawigacyjny z wyróżniony przykładowym niestandardowym pulpitem nawigacyjnym.

  4. Zostanie wyświetlony dostosowany pulpit nawigacyjny.

    Niestandardowy pulpit nawigacyjny

Dostępem do pulpitu nawigacyjnego można zarządzać przy użyciu kontroli dostępu na podstawie ról (RBAC) platformy Azure. Po wdrożeniu pulpitu nawigacyjnego możesz też dostosowywać jego wygląd. Jeśli jednak ponownie wdrożysz grupę zasobów, pulpit nawigacyjny zostanie zresetowany do domyślnego stanu określonego w szablonie. Aby uzyskać więcej informacji na temat tworzenia pulpitów nawigacyjnych, zobacz Programmatically create Azure Dashboards (Programowe tworzenie pulpitów nawigacyjnych platformy Azure).

Czyszczenie zasobów

Gdy zasoby platformy Azure nie będą już potrzebne, wyczyść wdrożone zasoby, usuwając grupę zasobów.

  1. W menu Azure Portal pozycję Grupy zasobów z menu po lewej stronie.

  2. Wybierz nazwę grupy zasobów.

  3. Wybierz pozycję Usuń grupę zasobów z górnego menu.

Następne kroki

W tym artykule opisano sposób tworzenia i wdrażania szablonów przy użyciu Visual Studio. Aby dowiedzieć się więcej na temat tworzenia szablonów, zobacz naszą nową serię samouczków dla początkujących: