Övning – Skapa och distribuera en distributionsstack med Bicep
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.
Öppna Visual Studio Code.
Skapa en ny fil med namnet main.bicep.
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.
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.
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.
I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.
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.
Om ett annat gränssnitt än bash visas väljer du listrutepilen för gränssnittet och väljer sedan Git Bash.
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
Logga in på Azure i Visual Studio Code-terminalen genom att köra följande kommando:
az login
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.
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
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.
I menyn Terminal väljer du Ny terminal. Terminalfönstret öppnas vanligtvis på den nedre halvan av skärmen.
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.
Om ett annat gränssnitt än pwsh eller powershell visas väljer du listrutepilen shell och väljer sedan PowerShell.
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
Logga in på Azure i Visual Studio Code-terminalen genom att köra följande kommando:
Connect-AzAccount
Logga in på ditt Azure-konto i webbläsaren som öppnas.
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.
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.