Udostępnij za pośrednictwem


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. Można na przykład wdrożyć hosta internetowego, witrynę internetową i kod dla 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 2019 lub nowszego z zainstalowanymi obciążeniami programowania i ASP.NET platformy Azure. Jeśli używasz programu Visual Studio 2017, środowisko jest w dużej mierze takie samo.

Tworzenie projektu grupy zasobów platformy Azure

W tej sekcji utworzysz projekt grupy zasobów platformy Azure z szablonem aplikacji internetowej.

  1. W programie Visual Studio wybierz pozycję Plik>nowy>projekt.

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

    Zrzut ekranu przedstawiający przycisk Utwórz nowy projekt z wyróżnionym przyciskiem Grupa zasobów platformy Azure i Dalej.

  3. Nadaj projektowi nazwę. Inne ustawienia domyślne są prawdopodobnie poprawne, ale przejrzyj je, aby działały w twoim środowisku. Po zakończeniu wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający okno nazewnictwa projektu w programie Visual Studio.

  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ć. W tym artykule wybierz szablon aplikacji internetowej i przycisk OK.

    Zrzut ekranu przedstawiający okno wyboru szablonu z wyróżnionym szablonem aplikacji internetowej.

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

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

    Zrzut ekranu przedstawiający Eksplorator rozwiązań programu Visual Studio z plikami projektu wdrażania grupy zasobó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. Program Visual Studio używa tego skryptu programu PowerShell do wdrożenia szablonu.
    WebSite.json 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.json 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 Zawartość. Jeśli dodasz więcej plików parametrów, upewnij się, że akcja kompilacji jest ustawiona na 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 szablonu usługi Resource Manager

Projekt wdrażania można dostosować, modyfikując szablon usługi Resource Manager, który opisuje 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.json.

  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.

    Zrzut ekranu przedstawiający okno konspektu JSON w programie Visual Studio dla szablonu usługi Resource Manager.

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

    Zrzut ekranu edytora programu Visual Studio z wybranym elementem w oknie Konspektu 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 przedstawiający okno konspektu JSON z wyróżnioną opcją Dodaj nowy zasób.

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

    Zrzut ekranu przedstawiający okno Dodawanie nowego zasobu z wybraną pozycją Konto 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.

    Zrzut ekranu przedstawiający okno konspektu JSON z dodanym zasobem konta magazynu.

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

    Zrzut ekranu edytora programu Visual Studio przedstawiający sugestie funkcji IntelliSense dotyczące szablonu usługi Resource Manager.

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

    "properties": {
      "name": "[parameters('hostingPlanName')]",
      "numberOfWorkers": 1
    }
    
  9. Otwórz plik WebSite.parameters.json. Plik parametrów służy do przekazywania wartości podczas wdrażania, które dostosują 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 przystąpić do wdrażania projektu 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 kontynuować korzystanie z niego, możesz użyć tego skryptu domyślnego. Za pomocą tego skryptu możesz użyć interfejsu programu Visual Studio do wdrożenia rozwiązania.

Jeśli jednak przeprowadzono migrację do nowego modułu Az, musisz dodać nowy skrypt do projektu. Aby dodać skrypt używający modułu Az, skopiuj skrypt Deploy-AzTemplate.ps1 i dodaj go do projektu. Aby użyć tego skryptu do wdrożenia, należy uruchomić go z poziomu konsoli programu PowerShell, a nie przy użyciu interfejsu wdrażania programu Visual Studio.

Oba podejścia są pokazane w tym artykule. Ten artykuł odnosi się do skryptu domyślnego jako skryptu modułu AzureRM i nowego skryptu jako skryptu modułu Az.

Skrypt modułu Az

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

.\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 programu Visual Studio:

  1. W menu skrótów węzła projektu wdrażania wybierz pozycję Wdróż>Nowe.

    Zrzut ekranu przedstawiający menu kontekstowe projektu wdrożenia z wyróżnionymi opcjami Wdróż i Nowe.

  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 Wdróż.

    Zrzut ekranu przedstawiający okno dialogowe Wdrażanie w grupie zasobów w programie Visual Studio.

  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 witrynę 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 w celu utworzenia unikatowej nazwy.

    Zrzut ekranu witryny Azure Portal przedstawiający wdrożone zasoby w grupie 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 pozycje Dodaj>Nowy projekt.

    Zrzut ekranu przedstawiający menu kontekstowe Dodawanie nowego projektu w programie Visual Studio.

  2. Dodaj aplikację internetową ASP.NET Core.

    Zrzut ekranu przedstawiający okno Nowy projekt z wybraną aplikacją internetową ASP.NET Core.

  3. Nadaj aplikacji internetowej nazwę i wybierz pozycję Utwórz.

    Zrzut ekranu przedstawiający okno nazewnictwa projektu dla aplikacji internetowej ASP.NET Core.

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

    Zrzut ekranu przedstawiający okno Nowa aplikacja internetowa ASP.NET Core z wybraną pozycją Aplikacja internetowa.

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

    Zrzut ekranu przedstawiający Eksplorator rozwiązań programu Visual Studio z wyświetlonymi obydwoma projektami w rozwiązaniu.

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

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

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

    Zrzut ekranu przedstawiający okno Dodawanie odwołania w programie Visual Studio z wybranym projektem aplikacji internetowej.

    Dodając odwołanie, połą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.

    Zrzut ekranu przedstawiający okno Właściwości wyświetlający właściwości odwołania dla projektu aplikacji internetowej.

  8. Wróć do szablonu (WebSite.json) i dodaj zasób do szablonu.

    Zrzut ekranu przedstawiający okno konspektu JSON z wyróżnioną opcją Dodaj nowy zasób.

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

    Zrzut ekranu przedstawiający okno Dodawanie nowego zasobu z wybraną pozycją Web Deploy for Web Apps.

    Zapisz szablon.

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

    Otwórz Website.parameters.json i ustaw te parametry na wartości, które były wyświetlane we właściwościach odwołania. Ustaw wartość ExampleAppPackageFolder na nazwę folderu. Ustaw wartość 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 za pomocą infrastruktury

Ponieważ dodano kod do projektu, wdrożenie jest nieco inne tym razem. Podczas wdrażania można przygotować artefakty dla projektu w miejscu, do którego usługa Resource Manager może uzyskać dostęp. Artefakty są przygotowane na konto magazynu.

Skrypt modułu Az

Istnieje jedna mała zmiana, którą należy wprowadzić do szablonu, jeśli używasz skryptu modułu Az. Ten skrypt dodaje ukośnik do lokalizacji artefaktów, ale szablon nie oczekuje tego ukośnika. Otwórz WebSite.json i 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 żadnych parametrów ('_artifactsLocation') i parametrów('ExampleAppPackageFolder').

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

Teraz otwórz konsolę programu PowerShell i uruchom polecenie:

.\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 programu Visual Studio:

  1. Aby ponownie wdrożyć, wybierz pozycję Wdróż i wdrożona wcześniej grupa zasobów.

    Zrzut ekranu przedstawiający menu kontekstowe projektu wdrożenia z wyróżnioną pozycję Wdróż i wyróżnioną wcześniej używaną grupą zasobów.

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

    Zrzut ekranu przedstawiający okno dialogowe Wdrażanie w grupie zasobów z wybranym kontem magazynu artefaktów.

Wyświetlanie aplikacji internetowej

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

    Zrzut ekranu witryny Azure Portal przedstawiający zasób aplikacji internetowej z wyróżnionym adresem URL.

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

    Zrzut ekranu przedstawiający wdrożona domyślną aplikację ASP.NET w przeglądarce internetowej.

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.json i dodaj 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 wdróż projekt.

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

    Zrzut ekranu przedstawiający stronę pulpitu nawigacyjnego witryny Azure Portal z wyróżnionym przykładowym niestandardowym pulpitem nawigacyjnym.

  4. Zostanie wyświetlony dostosowany pulpit nawigacyjny.

    Zrzut ekranu przedstawiający dostosowany pulpit nawigacyjny operacyjny w witrynie Azure Portal.

Dostęp do pulpitu nawigacyjnego można zarządzać przy użyciu kontroli dostępu opartej na rolach (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 witrynie Azure Portal wybierz 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 przedstawiono sposób tworzenia i wdrażania szablonów przy użyciu programu Visual Studio. Aby dowiedzieć się więcej na temat tworzenia szablonów, zobacz naszą nową serię samouczków dla początkujących: