Skapa och distribuera Azure-resursgrupper via Visual Studio

Med Visual Studio kan du skapa ett projekt som distribuerar din infrastruktur och kod till Azure. Du kan till exempel distribuera webbvärden, webbplatsen och koden för webbplatsen. Visual Studio har många olika startmallar som du kan använda för att distribuera vanliga scenarier. I den här artikeln distribuerar du en webbapp.

Den här artikeln visar hur du använder Visual Studio 2019 eller senare med Azure-utveckling och ASP.NET arbetsbelastningar installerade. Om du använder Visual Studio 2017 är upplevelsen i stort sett densamma.

Skapa ett projekt för en Azure-resursgrupp

I det här avsnittet skapar du ett Azure-resursgruppsprojekt med en webbappmall .

  1. I Visual Studio väljer du Nytt>>projekt.

  2. Välj projektmallen Azure-resursgrupp och Nästa.

    Skärmbild av fönstret Skapa ett nytt projekt med azure-resursgrupp och nästa knapp markerade.

  3. Ge projektet ett namn. De andra standardinställningarna är förmodligen bra, men granska dem så att de fungerar för din miljö. Välj Skapa när du är klar.

    Skärmbild av projektnamngivningsfönstret i Visual Studio.

  4. Välj den mall som du vill distribuera till Azure Resource Manager. Observera att det finns många olika alternativ beroende på vilken typ av projekt som du vill distribuera. I den här artikeln väljer du webbappmallen och OK.

    Skärmbild av mallvalsfönstret med webbappmallen markerad.

    Mallen som du väljer är bara en startpunkt. Du kan lägga till och ta bort resurser som passar ditt scenario.

  5. Visual Studio skapar ett resursgruppsdistributionsprojekt för webbappen. Om du vill se filerna för projektet tittar du på noden i distributionsprojektet.

    Skärmbild av Visual Studio Solution Explorer som visar projektfilerna för resursgruppens distribution.

    Eftersom du har valt webbappmallen visas följande filer:

    Filnamn Description
    Deploy-AzureResourceGroup.ps1 Ett PowerShell-skript som kör PowerShell-kommandon för distribution till Azure Resource Manager. Visual Studio använder det här PowerShell-skriptet för att distribuera mallen.
    WebSite.json Resource Manager-mallen som definierar infrastrukturen som du vill distribuera till Azure, och de parametrar som du kan ange under distributionen. Den definierar även beroendena mellan resurserna så att resurserna distribueras i rätt ordning av Resource Manager.
    WebSite.parameters.json En parameterfil med värden som krävs av mallen. Du skickar in parametervärden för att anpassa varje distribution. Observera att Build Action är inställt på Innehåll. Om du lägger till fler parameterfiler kontrollerar du att byggåtgärden är inställd på Innehåll.

    Alla distributionsprojekt för resursgrupper innehåller dessa grundläggande filer. Andra projekt kan ha fler filer som stöder andra funktioner.

Anpassa Resource Manager mall

Du kan anpassa ett distributionsprojekt genom att ändra mallen Resource Manager som beskriver de resurser som du vill distribuera. Mer information om elementen i Resource Manager-mallen finns i Redigera Azure Resource Manager-mallar.

  1. Om du vill arbeta med mallen öppnar du WebSite.json.

  2. Visual Studio-redigeraren innehåller verktyg som hjälper dig att redigera Resource Manager-mallen. Fönstret JSON-disposition gör det enkelt att se elementen som definierats i mallen.

    Skärmbild av JSON-dispositionsfönstret i Visual Studio för mallen Resource Manager.

  3. Välj ett element i dispositionen för att gå till den delen av mallen.

    Skärmbild av Visual Studio-redigeraren med ett markerat element i JSON-dispositionsfönstret.

  4. Du kan lägga till en resurs genom att antingen välja knappen Lägg till resurs längst upp i fönstret JSON-disposition eller genom att högerklicka på resurser och välja Lägg till ny resurs.

    Skärmbild av fönstret JSON-disposition som markerar alternativet Lägg till ny resurs.

  5. Välj Lagringskonto och ge det ett namn. Ange ett namn som innehåller fler än 11 tecken och endast siffror och små bokstäver.

    Skärmbild av fönstret Lägg till ny resurs med lagringskonto valt.

  6. Observera att inte bara resursen lades till, utan även en parameter för typen av lagringskonto och en variabel för namnet på lagringskontot.

    Skärmbild av fönstret JSON-disposition som visar den tillagda lagringskontoresursen.

  7. Parametern för typen av lagringskonto är fördefinierad med tillåtna typer och en standardtyp. Du kan lämna dessa värden eller redigera dem för ditt scenario. Om du inte vill att någon ska distribuera ett Premium_LRS-lagringskonto med den här mallen tar du bort det från de tillåtna typerna.

    "demoaccountType": {
      "type": "string",
      "defaultValue": "Standard_LRS",
      "allowedValues": [
        "Standard_LRS",
        "Standard_ZRS",
        "Standard_GRS",
        "Standard_RAGRS"
      ]
    }
    
  8. Visual Studio tillhandahåller även IntelliSense som gör det lättare för dig att förstå vilka egenskaper som är tillgängliga när du redigerar mallen. Om du till exempel vill redigera egenskaperna för din App Service plan går du till resursen HostingPlan och lägger till ett värde för properties. Observera att IntelliSense visar de tillgängliga värdena och en beskrivning av det aktuella värdet.

    Skärmbild av Visual Studio-redigeraren som visar intellisense-förslag för Resource Manager mall.

    Du kan ange numberOfWorkers till 1 och spara filen.

    "properties": {
      "name": "[parameters('hostingPlanName')]",
      "numberOfWorkers": 1
    }
    
  9. Öppna filen WebSite.parameters.json . Du använder parameterfilen för att skicka in värden under distributionen som anpassar resursen som distribueras. Ge värdplanen ett namn och spara filen.

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

Distribuera projekt till Azure

Nu är du redo att distribuera projektet till en resursgrupp.

Som standard använder PowerShell-skriptet (Deploy-AzureResourceGroup.ps1) i projektet AzureRM-modulen. Om du fortfarande har AzureRM-modulen installerad och vill fortsätta använda den kan du använda det här standardskriptet. Med det här skriptet kan du använda Visual Studio-gränssnittet för att distribuera din lösning.

Men om du har migrerat till den nya Az-modulen måste du lägga till ett nytt skript i projektet. Om du vill lägga till ett skript som använder Az-modulen kopierar duDeploy-AzTemplate.ps1-skriptet och lägger till det i projektet. Om du vill använda det här skriptet för distribution måste du köra det från en PowerShell-konsol i stället för att använda Visual Studio-distributionsgränssnittet.

Båda metoderna visas i den här artikeln. Den här artikeln refererar till standardskriptet som AzureRM-modulskriptet och det nya skriptet som Az-modulskriptet.

Az-modulskript

Öppna en PowerShell-konsol för Az-modulskriptet och kör:

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

AzureRM-modulskript

För AzureRM-modulskriptet använder du Visual Studio:

  1. På snabbmenyn för distributionsprojektnoden väljer du Distribuera>ny.

    Skärmbild av snabbmenyn för distributionsprojekt med alternativen Distribuera och Nya markerade.

  2. Dialogrutan Distribuera till resursgrupp. I listrutan Resursgrupp väljer du en befintlig resursgrupp eller skapar en ny. Välj Distribuera.

    Skärmbild av dialogrutan Distribuera till resursgrupp i Visual Studio.

  3. I fönstren Utdata kan du se status för distributionen. När distributionen är klar indikerar det sista meddelandet att distributionen är framgångsrik med något liknande:

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

Visa distribuerade resurser

Nu ska vi kontrollera resultaten.

  1. Öppna Azure Portal i en webbläsare och logga in på ditt konto. Du visar resursgruppen genom att välja Resursgrupper och den resursgrupp som du har distribuerat till.

  2. Du ser alla distribuerade resurser. Observera att namnet på lagringskontot inte stämmer exakt med namnet du angav när du lade till resursen. Lagringskontot måste vara unikt. Mallen lägger automatiskt till en sträng med tecken till det namn som du angav för att skapa ett unikt namn.

    Skärmbild av Azure Portal som visar de distribuerade resurserna i en resursgrupp.

Lägga till kod i projektet

Nu har du distribuerat infrastrukturen för din app, men det finns ingen faktisk kod som distribueras med projektet.

  1. Lägga till ett projekt i din Visual Studio-lösning. Högerklicka på lösningen och välj Lägg till>nytt projekt.

    Skärmbild av snabbmenyn Lägg till nytt projekt i Visual Studio.

  2. Lägg till ett ASP.NET Core webbprogram.

    Skärmbild av fönstret Nytt projekt med ASP.NET Core webbprogram valt.

  3. Ge webbappen ett namn och välj Skapa.

    Skärmbild av projektnamngivningsfönstret för ASP.NET Core-webbprogrammet.

  4. Välj Webbprogram och Skapa.

    Skärmbild av fönstret Nytt ASP.NET Core webbprogram med Webbprogram valt.

  5. Efter att Visual Studio skapat din webbapp visas båda projekten i lösningen.

    Skärmbild av Visual Studio Solution Explorer som visar båda projekten i lösningen.

  6. Nu måste du kontrollera att ditt resursgrupp-projekt är medvetet om det nya projektet. Gå tillbaka till resursgruppsprojektet (ExampleAppDeploy). Högerklicka på Referenser och välj Lägg till referens.

    Skärmbild av snabbmenyn ExampleAppDeploy med alternativet Lägg till referens markerat.

  7. Välj det webbapp-projekt som du har skapat.

    Skärmbild av fönstret Lägg till referens i Visual Studio med webbappsprojektet valt.

    Genom att lägga till en referens länkar du webbappsprojektet till resursgruppsprojektet och anger automatiskt vissa egenskaper. Du ser dessa egenskaper i fönstret Egenskaper för referensen. Ta med filsökväg innehåller sökvägen där paketet skapas. Observera mappen (ExampleApp) och filen (package.zip). Du behöver dessa värden eftersom du anger dem som parametrar när du distribuerar appen.

    Skärmbild av Fönstret Egenskaper som visar referensegenskaperna för webbappsprojektet.

  8. Gå tillbaka till mallen (WebSite.json) och lägg till en resurs i mallen.

    Skärmbild av fönstret JSON-disposition med alternativet Lägg till ny resurs markerat.

  9. Denna gång väljer du Webbdistribution för Web Apps.

    Skärmbild av fönstret Lägg till ny resurs med Webbdistribution för Web Apps valt.

    Spara mallen.

  10. Det finns några nya parametrar i mallen. De lades till i föregående steg. Du behöver inte ange värden för _artifactsLocation eller _artifactsLocationSasToken eftersom dessa värden genereras automatiskt. Du måste dock ange mappen och filnamnet till den sökväg som innehåller distributionspaketet. Namnen på dessa parametrar slutar med PackageFolder och PackageFileName. Den första delen av namnet är namnet på den webdistributionsresurs som du lade till. I den här artikeln heter de ExampleAppPackageFolder och ExampleAppPackageFileName.

    Öppna Website.parameters.json och ange dessa parametrar till de värden som du såg i referensegenskaperna. Ange ExampleAppPackageFolder till namnet på mappen . Ange ExampleAppPackageFileName till namnet på zip-filen.

    {
      "$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"
        }
      }
    }
    

Distribuera kod med infrastruktur

Eftersom du har lagt till kod i projektet är distributionen lite annorlunda den här gången. Under distributionen mellanlagrar du artefakter för projektet till en plats som Resource Manager kan komma åt. Artefakterna mellanlagras till ett lagringskonto.

Az-modulskript

Det finns en liten ändring du behöver göra i mallen om du använder Az-modulskriptet. Det här skriptet lägger till ett snedstreck till artefaktplatsen, men mallen förväntar sig inte det snedstrecket. Öppna WebSite.json och leta reda på egenskaperna för MSDeploy-tillägget. Den har en egenskap med namnet packageUri. Ta bort snedstrecket mellan artefaktplatsen och paketmappen.

Det bör se ut så här:

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

Observera i föregående exempel att det inte finns någon '/', mellan parametrar ("_artifactsLocation") och parametrar("ExampleAppPackageFolder").

Återskapa projektet. Genom att skapa projektet ser du till att de filer som du behöver distribuera läggs till i mellanlagringsmappen.

Öppna nu en PowerShell-konsol och kör:

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

AzureRM-modulskript

För AzureRM-modulskriptet använder du Visual Studio:

  1. Om du vill distribuera om väljer du Distribuera och den resursgrupp som du distribuerade tidigare.

    Skärmbild av snabbmenyn för distributionsprojektet med Distribuera och den tidigare använda resursgruppen markerad.

  2. Välj det lagringskonto som du distribuerade med den här resursgruppen för Artefaktlagringskontot.

    Skärmbild av dialogrutan Distribuera till resursgrupp med Artefaktlagringskonto valt.

Visa webbapp

  1. När distributionen är klar väljer du din webbapp i portalen. Välj webbadress för att gå till webbplatsen.

    Skärmbild av Azure Portal som visar webbappresursen med URL:en markerad.

  2. Nu ser du att du har distribuerat standard-ASP.NET-appen.

    Skärmbild av den distribuerade standardappen ASP.NET i en webbläsare.

Instrumentpanel för att lägga till åtgärder

Du är inte begränsad till de resurser som är tillgängliga via Visual Studio-gränssnittet. Du kan anpassa din distribution genom att lägga till en anpassad resurs i mallen. Du kan lägga till en instrumentpanel för att hantera den resurs du har distribuerat.

  1. Öppna filen WebSite.json och lägg till följande JSON efter lagringskontoresursen, men innan resursavsnittet stängs ] .

     ,{
       "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. Distribuera om projektet.

  3. När distributionen är klar kan du visa instrumentpanelen i portalen. Välj Instrumentpanel och välj den som du har distribuerat.

    Skärmbild av sidan Azure Portal Instrumentpanel som visar ett exempel på en anpassad instrumentpanel.

  4. Du ser den anpassade instrumentpanelen.

    Skärmbild av den anpassade åtgärdsinstrumentpanelen i Azure Portal.

Du kan hantera åtkomst till instrumentpanelen med hjälp av rollbaserad åtkomstkontroll i Azure (Azure RBAC). Du kan också anpassa instrumentpanelens utseende när den har distribuerats. Om du däremot distribuerar om resursgruppen återställs instrumentpanelen till sitt ursprungsläge i mallen. Mer information om hur du skapar instrumentpaneler finns i Skapa Azure-instrumentpaneler programmässigt.

Rensa resurser

När Azure-resurserna inte längre behövs rensar du de resurser som du har distribuerat genom att ta bort resursgruppen.

  1. I Azure Portal väljer du Resursgrupper på den vänstra menyn.

  2. Välj resursgruppens namn.

  3. Välj Ta bort resursgrupp på den översta menyn.

Nästa steg

I den här artikeln har du lärt dig hur du skapar och distribuerar mallar med hjälp av Visual Studio. Mer information om mallutveckling finns i vår nya självstudieserie för nybörjare: