Övning – Skapa och distribuera en distributionsstack med Bicep

Slutförd

Du är på sprint 1 för det nya inlåningsprogrammet. Du vill testa processen med att skapa en distributionsstack med hanterade resurser i en utvecklingsprenumeration. I den här övningen skapar du en distributionsstack som är begränsad till en resursgrupp som refererar till en Bicep-fil. Filen definierar en Azure App Service-plan och en Azure App Service.

Under processen gör du följande:

  • Skapa en Bicep-fil som definierar din ursprungliga arkitektur
  • Skapa en distributionsstack som är begränsad till en resursgrupp med hjälp av din Bicep-fil.
  • Granska konfigurationen av din distributionsstack och hanterade resurser

Den här övningen använder Bicep-tillägget för Visual Studio Code. Installera tillägget i Visual Studio Code.

Skapa Bicep-filen

Vårt första steg är att skapa en Bicep-fil som definierar våra resurser som ska användas med distributionsstacken.

  1. Öppna Visual Studio Code.

  2. Skapa en ny fil med namnet main.bicep.

  3. Spara den tomma filen så att Visual Studio Code läser in Bicep-verktyget.

    Du kan antingen välja Spara som-fil> eller välja Ctrl+S i Windows (⌘+S på macOS). Kom ihåg var du sparade filen. Du kanske till exempel vill skapa en mallmapp där filen ska sparas.

  4. Lägg till följande Bicep-kod i filen. Du distribuerar mallen snart. Det är en bra idé att skriva koden själv i stället för att kopiera och klistra in, så att du kan se hur verktygen hjälper dig att skriva dina Bicep-filer.

    // Parameters
    @description('The location for all resources.')
    param location string = 'eastus'
    
    @description('The name of the web application.')
    param webApplicationName string = 'webapp-${uniqueString(resourceGroup().id)}'
    
    // Variables
    @description('The name of the app service plan.')
    var appServicePlanName = 'plan-deposits'
    
    // Resource - App Service Plan
    resource appServicePlan 'Microsoft.Web/serverfarms@2023-12-01' = {
      name: appServicePlanName
      location: location
      sku: {
        name: 'F1'
        capacity: 1
      }
    }
    
    // Resource - Web App
    resource webApplication 'Microsoft.Web/sites@2023-12-01' = {
      name: webApplicationName
      location: location
      properties: {
        serverFarmId: appServicePlan.id
      }
    }
    

    Observera att du använder uttryck som innehåller stränginterpolation och uniqueString() funktionen för att definiera standardparametervärden. Någon som distribuerar den här mallen kan åsidosätta standardparametervärdena genom att ange värdena vid distributionstillfället, men de kan inte åsidosätta variabelvärdena.

    Observera också att du använder en variabel för Azure App Service-plannamnet, men du använder parametrar för de andra namnen. Lagringskonton och App Service-appar behöver globalt unika namn, men App Service-plannamn behöver bara vara unika i resursgruppen. Den här skillnaden innebär att det inte är ett problem att använda samma App Service-plannamn för olika distributioner, så länge distributionerna alla går in i olika resursgrupper.

  5. Spara ändringarna i filen.

Skapa distributionsstacken och distribuera dina resurser till Azure

För att distribuera mallen till Azure behöver du logga in på ditt Azure-konto från Visual Studio Code-terminalen. Se till att du har installerat Azure CLI-verktygen.

  1. I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.

  2. Om terminalfönstret visar bash på höger sida innebär det att rätt gränssnitt redan är öppet. Om du ser en bash shell-ikon till höger kan du välja den för att starta gränssnittet.

    Skärmbild av terminalfönstret i Visual Studio Code, där bash-alternativet visas.

    Om ett annat gränssnitt än bash visas väljer du listrutepilen för gränssnittet och väljer sedan Git Bash.

    Skärmbild av terminalfönstret i Visual Studio Code, där listrutan terminalgränssnitt visas och Git Bash Default har valts.

  3. I terminalen går du till katalogen där du sparade mallen. Om du till exempel har sparat mallen i mallmappen kan du använda det här kommandot:

    cd templates
    

Installera Bicep

Kör följande kommando för att se till att du har den senaste versionen av Bicep:

az bicep install && az bicep upgrade

Logga in på Azure med hjälp av Azure CLI

  1. Logga in på Azure i Visual Studio Code-terminalen genom att köra följande kommando:

    az login
    
  2. Logga in på ditt Azure-konto i webbläsaren som öppnas.

    Visual Studio Code-terminalen visar en lista över de prenumerationer som är associerade med det här kontot.

  3. Leta upp den prenumeration som du vill använda för den här övningen i listan.

    Om du missade listan från inloggningen kan du använda följande kodfragment för att lista dina prenumerationer igen.

    az account list --output table
    
  4. Ange standardprenumerationen för alla Azure CLI-kommandon som du kör i den här sessionen.

    az account set --subscription "Your Subscription Name or ID"
    

Skapa en resursgrupp

Vi måste skapa en resursgrupp för vår distributionsstack och hanterade resurser. Om du vill skapa en resursgrupp kör du följande kommando från terminalen i Visual Studio Code.

az group create \
    --name rg-depositsApplication \
    --location eastus

Om du vill distribuera den här mallen till Azure loggar du in på ditt Azure-konto från Visual Studio Code-terminalen. Kontrollera att du har installerat Azure PowerShell.

  1. I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.

  2. Om terminalfönstret visar pwsh eller powershell till höger betyder det att rätt gränssnitt redan är öppet. Om du ser en PowerShell-gränssnittsikon till höger kan du också välja den för att starta gränssnittet.

    Skärmbild av terminalfönstret i Visual Studio Code med pwsh-alternativet som visas i listrutan shell.

    Om ett annat gränssnitt än pwsh eller powershell visas väljer du listrutepilen shell och väljer sedan PowerShell.

    Skärmbild av Terminalfönstret i Visual Studio Code, med listrutan terminalgränssnitt som visas och PowerShell valt.

  3. I terminalen går du till katalogen där du sparade mallen. Om du till exempel har sparat mallen i mallmappen kan du använda det här kommandot:

    Set-Location -Path templates
    

Installera Bicep CLI

Om du vill använda Bicep från Azure PowerShell installerar du Bicep CLI.

Logga in i Azure med Azure PowerShell

  1. Logga in på Azure i Visual Studio Code-terminalen genom att köra följande kommando:

    Connect-AzAccount
    
  2. Logga in på ditt Azure-konto i webbläsaren som öppnas.

  3. Hämta ID:t för den prenumeration som du vill använda för den här övningen genom att köra följande kommando:

    Get-AzSubscription
    

    Prenumerations-ID är den andra kolumnen. Kopiera den andra kolumnen. Det ser ut ungefär som aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e4e.

  4. Ange standardprenumerationen för alla Azure PowerShell-kommandon som du kör i den här sessionen.

    Set-AzContext -SubscriptionId {Your subscription ID}
    

Skapa en resursgrupp

Vi måste skapa en resursgrupp för vår distributionsstack och hanterade resurser. Om du vill skapa en resursgrupp kör du följande kommando från terminalen i Visual Studio Code.

New-AzResourceGroup `
    -Name rg-depositsApplication `
    -Location eastus

Skapa distributionsstacken

Därefter måste vi skapa vår distributionsstack som är begränsad till vår nyligen skapade resursgrupp. Skapa distributionsstacken genom att köra följande kommando från terminalen i Visual Studio Code.

az stack group create \
    --name stack-deposits \
    --resource-group rg-depositsApplication \
    --template-file ./main.bicep \
    --action-on-unmanage detachAll \
    --deny-settings-mode none
New-AzResourceGroupDeploymentStack `
    -Name stack-deposits `
    -ResourceGroupName rg-depositsApplication `
    -TemplateFile ./main.bicep `
    -ActionOnUnmanage DetachAll `
    -DenySettingsMode None

Kontrollera att distributionsstacken och de hanterade resurserna har skapats

När du skapar en distributionsstack och dess hanterade resurser kan du visa dess konfiguration med hjälp av kommandoraden eller Azure Portal. I den här övningen använder vi Azure CLI. Om du vill visa konfigurationen av distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.

az stack group show \
    --resource-group rg-depositsApplication \
    --name stack-deposits

Resultatet inkluderar egenskaperna för distributionsstacken och statusen för de hanterade resurserna. Json-utdata bör se bekant ut för följande bild:

{
  "actionOnUnmanage": {
    "managementGroups": "detach",
    "resourceGroups": "detach",
    "resources": "detach"
  },
  "bypassStackOutOfSyncError": null,
  "correlationId": ".",
  "debugSetting": null,
  "deletedResources": [],
  "denySettings": {
    "applyToChildScopes": false,
    "excludedActions": null,
    "excludedPrincipals": null,
    "mode": "none"
  },
  "deploymentId": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deployments/stack-deposits",
  "deploymentScope": null,
  "description": null,
  "detachedResources": [],
  "duration": "PT2M53.2734284S",
  "error": null,
  "failedResources": [],
  "id": "/subscriptions/././rg-depositsApplication/./Microsoft.Resources/deploymentStacks/stack-deposits",
  "location": null,
  "name": "stack-deposits",
  "outputs": null,
  "parametersLink": null,
  "provisioningState": "succeeded",
  "resourceGroup": "rg-depositsApplication",
  "resources": [
    {
      "denyStatus": "none",
      "id": "/subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    },
    {
      "denyStatus": "none",
      "id": "/subscriptions/./resourceGroups/rg-depositsApplication/././sites/webapp-eque2jlrboltq",
      "resourceGroup": "rg-depositsApplication",
      "status": "managed"
    }
  ],
  "systemData": {
    "createdAt": "2024-01-01T00:00:01.000000+00:00",
    "createdBy": "depositsapplication@contoso.com",
    "createdByType": "User",
    "lastModifiedAt": "2024-01-01T00:00:01.000000+00:00",
    "lastModifiedBy": "depositsapplication@contoso.com",
    "lastModifiedByType": "User"
  },
  "tags": {},
  "template": null,
  "templateLink": null,
  "type": "Microsoft.Resources/deploymentStacks"
}

Observera resursavsnittet i utdata. För varje resurs visas dess status som "hanterad", dess resursgrupp, dess resurs-ID och dess neka-inställningar.

När du skapar en distributionsstack och dess hanterade resurser kan du visa dess konfiguration med hjälp av kommandoraden eller Azure Portal. I den här övningen använder vi Azure PowerShell. Om du vill visa konfigurationen av distributionsstacken kör du följande kommando från terminalen i Visual Studio Code.

Get-AzResourceGroupDeploymentStack `
    -ResourceGroupName rg-depositsApplication `
    -Name stack-deposits

Resultatet inkluderar egenskaperna för distributionsstacken och statusen för de hanterade resurserna. PowerShell-utdata bör se bekant ut för följande bild:

Id                            : /subscriptions/././rg-depositsApplication/././deploymentStacks/stack-deposits
Name                          : stack-deposits
ProvisioningState             : succeeded
resourcesCleanupAction        : detach
resourceGroupsCleanupAction   : detach
managementGroupsCleanupAction : detach
CorrelationId                 : .
DenySettingsMode              : none
CreationTime(UTC)             : 1/01/2024 0:00:01 AM
DeploymentId                  : /subscriptions/././rg-depositsApplication/././deployments/stack-deposits
Resources                     : /subscriptions/././rg-depositsApplication/././serverfarms/plan-deposits
                                /subscriptions/././rg-depositsApplication/././sites/webapp-eque2jlrboltq

Observera resursavsnittet i utdata. Den definierar de resurser som hanteras av distributionsstacken. Du ser det fullständiga resurs-ID:t för varje resurs.