Definiera resurser
Bicep-filer är de filer som du skapar som definierar de Azure-resurser som ska distribueras.
Ditt leksaksföretag behöver dig för att skapa en återanvändbar Bicep-fil för produktlanseringar. Filen måste distribuera ett Azure Storage-konto och Azure App Service-resurser, som kommer att användas för marknadsföring av varje ny produkt under lanseringen.
I den här lektionen får du lära dig hur du definierar en resurs i en Bicep-fil, hur resursnamn fungerar och hur du kan skapa resurser som är relaterade till varandra.
Anmärkning
Kommandona i den här enheten visas för att illustrera begrepp. Kör inte kommandona än. Du kommer att öva på det du lär dig här snart.
Definiera en resurs
Det viktigaste du ska göra med Bicep-filer är att definiera dina Azure-resurser. Här är ett exempel på hur en typisk resursdefinition ser ut i Bicep. I det här exemplet skapas ett lagringskonto med namnet toylaunchstorage.
resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
name: 'toylaunchstorage'
location: 'westus3'
sku: {
name: 'Standard_LRS'
}
kind: 'StorageV2'
properties: {
accessTier: 'Hot'
}
}
Nu ska vi titta närmare på några viktiga delar i den här resursdefinitionen:
Nyckelordet
resourcei början talar om för Bicep att du är på väg att definiera en resurs.Sedan ger du resursen ett symboliskt namn. I exemplet är
storageAccountresursens symboliska namn . Symboliska namn används i Bicep för att referera till resursen, men de visas aldrig i Azure.Microsoft.Storage/storageAccounts@2022-09-01är resurstypen och API-versionen av resursen.Microsoft.Storage/storageAccountsmeddelar Bicep att du deklarerar ett Azure Storage-konto. Datumet2022-09-01är den version av Azure Storage-API:et som Bicep använder när resursen skapas.Tips/Råd
Bicep-tillägget för Visual Studio Code hjälper dig att hitta resurstyperna och API-versionerna för de resurser du skapar. Om du är bekant med ARM-mallar bör du tänka på att API-versionen matchar den version som du använder där också.
Du måste deklarera ett resursnamn, vilket är namnet som lagringskontot ska tilldelas i Azure. Du anger ett resursnamn med nyckelordet
name.Viktigt!
Symboliska namn används endast i Bicep-filen och visas inte i Azure. Resursnamn visas i Azure.
Sedan anger du annan information om resursen, till exempel dess plats, SKU (prisnivå) och typ. Det finns också egenskaper som du kan definiera som är olika för varje resurstyp. Olika API-versioner kan också introducera olika egenskaper. I det här exemplet ställer vi in lagringskontots åtkomstnivå på
Hot.
Tips/Råd
Resursnamn har ofta regler som du måste följa, till exempel maximala längder, tillåtna tecken och unikhet i hela Azure. Kraven för resursnamn skiljer sig åt för varje Azure-resurstyp. Se till att förstå namngivningsbegränsningarna och kraven innan du lägger till dem i Bicep-filen.
Vad händer när resurser är beroende av varandra?
En Bicep-fil innehåller vanligtvis flera resurser. Ofta behöver du en resurs för att vara beroende av en annan resurs. Du kan behöva extrahera viss information från en resurs för att kunna definiera en annan. Om du distribuerar ett webbprogram måste du skapa serverinfrastrukturen innan du kan lägga till ett program i den. Dessa relationer kallas beroenden.
Du måste distribuera ett App Service-program med hjälp av Bicep-filen som underlättar lanseringen av leksaksprodukten, men för att skapa ett App Service-program måste du först skapa en App Service-plan. App Service-planen representerar servervärdresurserna och deklareras som det här exemplet:
resource appServicePlan 'Microsoft.Web/serverFarms@2023-12-01' = {
name: 'toy-product-launch-plan'
location: 'westus3'
sku: {
name: 'F1'
}
}
Den här resursdefinitionen talar om för Bicep att du vill distribuera en App Service-plan som har resurstypen Microsoft.Web/serverFarms. Planresursen heter toy-product-launch-planoch distribueras till regionen USA, västra 3. Den använder en pris-SKU för F1, som är App Service kostnadsfria nivå.
Nu när du har deklarerat App Service-planen är nästa steg att deklarera appen:
resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
name: 'toy-product-launch-1'
location: 'westus3'
properties: {
serverFarmId: appServicePlan.id
httpsOnly: true
}
}
Den här Bicep-filen instruerar Azure att vara värd för appen på den plan som du skapade. Observera att planens definition innehåller App Service-planens symboliska namn på den här raden: serverFarmId: appServicePlan.id. Den här raden innebär att Bicep hämtar App Service-planens resurs-ID med hjälp av id egenskapen . Det innebär: den här appens servergrupps-ID är ID:t för App Service-planen som definierades tidigare.
Tips/Råd
I Azure är ett resurs-ID en unik identifierare för varje resurs. Resurs-ID:t innehåller Azure-prenumerations-ID, resursgruppens namn och resursnamnet, tillsammans med annan information.
Genom att deklarera appresursen med en egenskap som refererar till planens symboliska namn förstår Azure det implicita beroendet mellan App Service-appen och planen. När den distribuerar resurserna ser Azure till att den distribuerar planen helt innan den börjar distribuera appen.