Resources definiëren
Bicep-sjablonen zijn de bestanden die u ontwerpt waarmee de Azure-resources worden gedefinieerd die moeten worden geïmplementeerd.
Uw speelgoedbedrijf moet u een herbruikbare Bicep-sjabloon maken voor productlanceringen. De sjabloon moet een Azure-opslagaccount en Azure-app Service-resources implementeren, die worden gebruikt voor de marketing van elk nieuw product tijdens de lancering.
In deze les leert u hoe u een resource definieert in een Bicep-sjabloon, hoe resourcenamen werken en hoe u resources kunt maken die zich met elkaar verhouden.
Notitie
De opdrachten in deze les worden weergegeven om concepten te illustreren. Voer de opdrachten nog niet uit. U oefent wat u hier binnenkort leert.
Een resource definiëren
Het belangrijkste wat u met Bicep-sjablonen gaat doen, is het definiëren van uw Azure-resources. Hier volgt een voorbeeld van hoe een typische resourcedefinitie eruitziet in Bicep. In dit voorbeeld wordt een opslagaccount gemaakt met de naam toylaunchstorage
.
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: 'toylaunchstorage'
location: 'westus3'
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
Laten we eens kijken naar enkele belangrijke onderdelen van deze resourcedefinitie:
Het
resource
trefwoord aan het begin vertelt Bicep dat u een resource gaat definiëren.Vervolgens geeft u de resource een symbolische naam. In het voorbeeld is
storageAccount
de symbolische naam van de resource. Symbolische namen worden in Bicep gebruikt om te verwijzen naar de resource, maar ze worden nooit weergegeven in Azure.Microsoft.Storage/storageAccounts@2022-09-01
is het resourcetype en de API-versie van de resource.Microsoft.Storage/storageAccounts
vertelt Bicep dat u een Azure-opslagaccount declareren. De datum2022-09-01
is de versie van de Azure Storage-API die Bicep gebruikt bij het maken van de resource.Tip
Met de Bicep-extensie voor Visual Studio Code kunt u de resourcetypen en API-versies vinden voor de resources die u maakt. Als u bekend bent met ARM-sjablonen, moet u er rekening mee houden dat de API-versie ook overeenkomt met de versie die u daar zou gebruiken.
U moet een resourcenaam declareren. Dit is de naam die aan het opslagaccount wordt toegewezen in Azure. U stelt een resourcenaam in met behulp van het
name
trefwoord.Belangrijk
Symbolische namen worden alleen gebruikt in de Bicep-sjabloon en worden niet weergegeven in Azure. Resourcenamen worden wel weergegeven in Azure.
Vervolgens stelt u andere details van de resource in, zoals de locatie, de SKU (prijscategorie) en het soort. Er zijn ook eigenschappen die u kunt definiëren die verschillen voor elk resourcetype. Verschillende API-versies kunnen ook verschillende eigenschappen introduceren. In dit voorbeeld stellen we de toegangslaag van het opslagaccount in op
Hot
.
Tip
Resourcenamen hebben vaak regels die u moet volgen, zoals maximale lengte, toegestane tekens en uniekheid in heel Azure. De vereisten voor resourcenamen verschillen voor elk Azure-resourcetype. Zorg ervoor dat u de naamgevingsbeperkingen en vereisten begrijpt voordat u ze aan uw sjabloon toevoegt.
Wat gebeurt er wanneer resources afhankelijk zijn van elkaar?
Een Bicep-sjabloon bevat meestal verschillende resources. Vaak hebt u een resource nodig om afhankelijk te zijn van een andere resource. Mogelijk moet u bepaalde gegevens uit de ene resource extraheren om een andere te kunnen definiëren. Als u een webtoepassing implementeert, moet u de serverinfrastructuur maken voordat u er een toepassing aan kunt toevoegen. Deze relaties worden afhankelijkheden genoemd.
U moet een App Service-app implementeren voor de sjabloon waarmee het speelgoedproduct kan worden gestart, maar om een App Service-app te maken, moet u eerst een App Service-plan maken. Het App Service-plan vertegenwoordigt de resources voor serverhosting en wordt gedeclareerd als in dit voorbeeld:
resource appServicePlan 'Microsoft.Web/serverFarms@2023-12-01' = {
name: 'toy-product-launch-plan'
location: 'westus3'
sku: {
name: 'F1'
}
}
Deze resourcedefinitie vertelt Bicep dat u een App Service-plan met het resourcetype Microsoft.Web/serverFarms
wilt implementeren. De planresource heeft de naam toy-product-launch-plan
en wordt geïmplementeerd in de regio VS - west 3. Er wordt een prijs-SKU van F1 gebruikt. Dit is de gratis laag van App Service.
Nu u het App Service-plan hebt gedeclareerd, is de volgende stap het declareren van de app:
resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
name: 'toy-product-launch-1'
location: 'westus3'
properties: {
serverFarmId: appServicePlan.id
httpsOnly: true
}
}
Met deze sjabloon wordt Azure geïnstrueerd om de app te hosten op het plan dat u hebt gemaakt. U ziet dat de definitie van het plan de symbolische naam van het App Service-plan op deze regel bevat: serverFarmId: appServicePlan.id
. Deze regel betekent dat Bicep de resource-id van het App Service-plan opkrijgt met behulp van de id
eigenschap. Het zegt in feite: de serverfarm-id van deze app is de id van het App Service-plan dat eerder is gedefinieerd.
Tip
In Azure is een resource-id een unieke id voor elke resource. De resource-id bevat de Azure-abonnements-id, de naam van de resourcegroep en de resourcenaam, samen met enkele andere informatie.
Door de app-resource te declareren met een eigenschap die verwijst naar de symbolische naam van het plan, begrijpt Azure de impliciete afhankelijkheid tussen de App Service-app en het plan. Wanneer de resources worden geïmplementeerd, zorgt Azure ervoor dat het plan volledig wordt geïmplementeerd voordat de app wordt geïmplementeerd.