Skapa och distribuera Azure-resursgrupper via Visual Studio
Kommentar
Azure Resource Group-projektet har nu utökat stöd, vilket innebär att vi fortsätter att stödja befintliga funktioner men inte prioriterar att lägga till nya funktioner.
Kommentar
För bästa och säkraste upplevelse rekommenderar vi starkt att du uppdaterar Visual Studio-installationen till den senaste versionen av långsiktig support (LTS). Uppgraderingen förbättrar både tillförlitligheten och den övergripande prestandan för din Visual Studio-miljö. Om du väljer att inte uppgradera kan det uppstå problem som beskrivs i Problem när du skapar och distribuerar 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 din upplevelse i stort sett densamma.
Skapa ett projekt för en Azure-resursgrupp
I det här avsnittet skapar du ett Azure-resursgruppsprojekt med en webbappsmall .
I Visual Studio väljer du Nytt>>filprojekt.
Sök efter resursgrupp och välj sedan projektmallen Azure Resource Group (utökad support) och Nästa.
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.
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.
Mallen som du väljer är bara en startpunkt. Du kan lägga till och ta bort resurser som passar ditt scenario.
Visual Studio skapar ett resursgruppsdistributionsprojekt för webbappen. Om du vill se filerna för projektet tittar du på noden i distributionsprojektet.
Eftersom du valde webbappmallen ser du följande filer:
Filnamn beskrivning 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 Resource Manager-mallen som beskriver de resurser som du vill distribuera. Mer information om elementen i Resource Manager-mallen finns i Redigera Azure Resource Manager-mallar.
Om du vill arbeta med mallen öppnar du WebSite.json.
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.
Välj ett element i dispositionen för att gå till den delen av mallen.
Du kan lägga till en resurs genom att högerklicka på resurser och välja Lägg till ny resurs.
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.
Observera att inte bara resursen lades till, utan även en parameter för typen av lagringskonto och en variabel för namnet på lagringskontot.
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", "Premium_LRS" ] }
Distribuera projektet 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 du skriptet Deploy-AzTemplate.ps1 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:
På snabbmenyn för distributionsprojektets nod väljer du Distribuera>Ny.
Dialogrutan Distribuera till resursgrupp. I listrutan Resursgrupp väljer du en befintlig resursgrupp eller skapar en ny. Välj distribuera.
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 resultatet.
Ö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.
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.
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.
Lägga till ett projekt i din Visual Studio-lösning. Högerklicka på lösningen och välj Lägg till>nytt projekt.
Lägg till ett ASP.NET Core-webbprogram.
Ge webbappen ett namn och välj Skapa.
Välj Webbprogram och Skapa.
Efter att Visual Studio skapat din webbapp visas båda projekten i lösningen.
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.
Välj det webbapp-projekt som du har skapat.
Genom att lägga till en referens länkar du webbappprojektet 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.
Gå tillbaka till mallen (WebSite.json) och lägg till en resurs i mallen.
Denna gång väljer du Webbdistribution för Web Apps.
Spara mallen.
Några nya parametrar har lagts 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 sökvägen som innehåller distributionspaketet. Namnen på dessa parametrar slutar med PackageFolder och PackageFileName. Den första delen av namnet är namnet på den webbdistributionsresurs 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/2019-04-01/deploymentParameters.json#", "contentVersion": "1.0.0.0", "parameters": { "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 som du behöver göra i mallen om du använder Az-modulskriptet. Det här skriptet lägger till ett snedstreck på 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 artefaktens plats 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. När du skapar 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:
Om du vill distribuera om väljer du Distribuera och den resursgrupp som du distribuerade tidigare.
Välj det lagringskonto som du distribuerade med den här resursgruppen för Artefaktlagringskontot.
Visa webbapp
När distributionen är klar väljer du din webbapp i portalen. Välj webbadress för att gå till webbplatsen.
Nu ser du att du har distribuerat standard-ASP.NET-appen.
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.
Ö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)]" } }
Distribuera om projektet.
När distributionen är klar kan du visa instrumentpanelen i portalen. Välj Instrumentpanel och välj den som du distribuerade.
Du ser den anpassade instrumentpanelen.
Du kan hantera åtkomsten 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.
I Azure Portal väljer du Resursgrupper på den vänstra menyn.
Välj resursgruppens namn.
Välj Ta bort resursgrupp från menyn längst upp.
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: