Oefening: een implementatiestack maken en implementeren met Bicep
U staat op sprint 1 voor de nieuwe stortingsaanvraag. U wilt het proces voor het maken van een implementatiestack testen met beheerde resources in een ontwikkelingsabonnement. In deze oefening maakt u een implementatiestack die is gericht op een resourcegroep die verwijst naar een Bicep-bestand. Het bestand definieert een Azure App Service-plan en een Azure App Service.
Tijdens het proces gaat u het volgende doen:
- Een Bicep-bestand maken dat uw initiële architectuur definieert
- Maak een implementatiestack die is afgestemd op een resourcegroep met behulp van uw Bicep-bestand.
- Controleer de configuratie van uw implementatiestack en beheerde resources
In deze oefening wordt de Bicep-extensie voor Visual Studio Code gebruikt. Zorg ervoor dat u deze extensie installeert in Visual Studio Code.
Het Bicep-bestand maken
De eerste stap is het maken van een Bicep-bestand dat onze resources definieert die moeten worden gebruikt met de implementatiestack.
Open Visual Studio Code.
Maak een nieuw bestand met de naam main.bicep.
Sla het lege bestand op zodat Visual Studio Code de Bicep-hulpprogramma's laadt.
U kunt Bestand>opslaan als selecteren of Ctrl+S selecteren in Windows (⌘+S in macOS). Vergeet niet waar u het bestand hebt opgeslagen. U kunt bijvoorbeeld een sjabloonmap maken waarin u het bestand wilt opslaan.
Voeg de volgende Bicep-code toe aan het bestand. U implementeert de sjabloon binnenkort. Het is een goed idee om de code zelf te typen in plaats van te kopiëren en plakken, zodat u kunt zien hoe u met de hulpprogramma's uw Bicep-bestanden kunt schrijven.
// 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 } }
U gebruikt expressies met tekenreeksinterpolatie en de
uniqueString()
functie om standaardparameterwaarden te definiëren. Iemand die deze sjabloon implementeert, kan de standaardparameterwaarden overschrijven door de waarden op te geven tijdens de implementatie, maar ze kunnen de variabelewaarden niet overschrijven.U ziet ook dat u een variabele gebruikt voor de naam van het Azure-app Service-plan, maar dat u parameters voor de andere namen gebruikt. Opslagaccounts en App Service-apps hebben wereldwijd unieke namen nodig, maar namen van App Service-plannen moeten alleen uniek zijn binnen hun resourcegroep. Dit verschil betekent dat het geen probleem is om dezelfde Naam van het App Service-plan te gebruiken voor verschillende implementaties, zolang de implementaties allemaal naar verschillende resourcegroepen gaan.
Sla de wijzigingen in het bestand op.
De implementatiestack maken en uw resources implementeren in Azure
Als u deze sjabloon wilt implementeren in Azure, moet u zich aanmelden bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u de Azure CLI-hulpprogramma's hebt geïnstalleerd.
Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
Als in het terminalvenster bash aan de rechterkant wordt weergegeven, betekent dit dat de juiste shell al is geopend. Als u ook een bash-shellpictogram aan de rechterkant ziet, kunt u deze selecteren om de shell te starten.
Als een andere shell dan bash wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens Git Bash.
Ga in de terminal naar de map waarin u de sjabloon hebt opgeslagen. Als u de sjabloon bijvoorbeeld hebt opgeslagen in de map sjablonen , kunt u deze opdracht gebruiken:
cd templates
Bicep installeren
Voer de volgende opdracht uit om te controleren of u de nieuwste versie van Bicep hebt:
az bicep install && az bicep upgrade
Aanmelden bij Azure met behulp van Azure CLI
Meld u in de Visual Studio Code-terminal aan bij Azure door de volgende opdracht uit te voeren:
az login
Meld u aan bij uw Azure-account in de browser die wordt geopend.
In de Visual Studio Code-terminal wordt een lijst weergegeven met de abonnementen die aan dit account zijn gekoppeld.
Zoek in de lijst het abonnement dat u voor deze oefening wilt gebruiken.
Als u de lijst uit de aanmelding hebt gemist, kunt u het volgende fragment gebruiken om uw abonnementen opnieuw weer te geven.
az account list --output table
Stel het standaardabonnement in voor alle Azure CLI-opdrachten die u in deze sessie uitvoert.
az account set --subscription "Your Subscription Name or ID"
Een brongroep maken
We moeten een resourcegroep maken voor onze implementatiestack en beheerde resources. Als u een resourcegroep wilt maken, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.
az group create \
--name rg-depositsApplication \
--location eastus
Als u deze sjabloon wilt implementeren in Azure, meldt u zich aan bij uw Azure-account vanuit de Visual Studio Code-terminal. Zorg ervoor dat u Azure PowerShell hebt geïnstalleerd.
Selecteer Nieuwe terminal in het menu Terminal. Het terminalvenster wordt meestal geopend in de onderste helft van het scherm.
Als in het terminalvenster pwsh of powershell aan de rechterkant wordt weergegeven, betekent dit dat de juiste shell al is geopend. Als u aan de rechterkant een PowerShell-shellpictogram ziet, kunt u deze optie selecteren om de shell te starten.
Als een andere shell dan pwsh of powershell wordt weergegeven, selecteert u de vervolgkeuzepijl van de shell en selecteert u Vervolgens PowerShell.
Ga in de terminal naar de map waarin u de sjabloon hebt opgeslagen. Als u uw sjabloon bijvoorbeeld hebt opgeslagen in de map sjablonen , kunt u deze opdracht gebruiken:
Set-Location -Path templates
Bicep CLI installeren
Als u Bicep wilt gebruiken vanuit Azure PowerShell, installeert u de Bicep CLI.
Aanmelden bij Azure met behulp van Azure PowerShell
Meld u in de Visual Studio Code-terminal aan bij Azure door de volgende opdracht uit te voeren:
Connect-AzAccount
Meld u aan bij uw Azure-account in de browser die wordt geopend.
Haal de id op van het abonnement dat u voor deze oefening wilt gebruiken door de volgende opdracht uit te voeren:
Get-AzSubscription
De abonnements-id is de tweede kolom. Kopieer de tweede kolom. Het ziet er ongeveer uit als aaaa0a0a-bb1b-cc2c-dd3d-eeeee4e4e4e4e.
Stel het standaardabonnement in voor alle Azure PowerShell-opdrachten die u in deze sessie uitvoert.
Set-AzContext -SubscriptionId {Your subscription ID}
Een brongroep maken
We moeten een resourcegroep maken voor onze implementatiestack en beheerde resources. Als u een resourcegroep wilt maken, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.
New-AzResourceGroup `
-Name rg-depositsApplication `
-Location eastus
De implementatiestack maken
Vervolgens moeten we onze implementatiestack maken die is afgestemd op onze onlangs gemaakte resourcegroep. Als u de implementatiestack wilt maken, voert u de volgende opdracht uit vanuit de terminal in 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
Controleer het maken van de implementatiestack en de beheerde resources
Wanneer u een implementatiestack en de bijbehorende beheerde resources maakt, kunt u de configuratie ervan bekijken met behulp van de opdrachtregel of Azure Portal. In deze oefening gebruiken we Azure CLI. Als u de configuratie van de implementatiestack wilt weergeven, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.
az stack group show \
--resource-group rg-depositsApplication \
--name stack-deposits
De resultaten bevatten de eigenschappen van de implementatiestack en de status van de beheerde resources. De json-uitvoer moet bekend lijken op de volgende afbeelding:
{
"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"
}
Let op de sectie resources van de uitvoer. Voor elke resource wordt de status 'beheerd', de resourcegroep, de resource-id en de instellingen voor weigeren weergegeven.
Wanneer u een implementatiestack en de bijbehorende beheerde resources maakt, kunt u de configuratie ervan bekijken met behulp van de opdrachtregel of Azure Portal. In deze oefening gebruiken we Azure PowerShell. Als u de configuratie van de implementatiestack wilt weergeven, voert u de volgende opdracht uit vanuit de terminal in Visual Studio Code.
Get-AzResourceGroupDeploymentStack `
-ResourceGroupName rg-depositsApplication `
-Name stack-deposits
De resultaten bevatten de eigenschappen van de implementatiestack en de status van de beheerde resources. De PowerShell-uitvoer moet bekend zijn met de volgende afbeelding:
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
Let op de sectie resources van de uitvoer. Hiermee worden de resources gedefinieerd die worden beheerd door de implementatiestack. U ziet de volledige resource-id van elke resource.