Definer ressourcer

Fuldført

Bicep-filer er de filer, du opretter, og som definerer de Azure-ressourcer, der skal udrulles.

Dit legetøjsfirma skal have dig til at oprette en Bicep-fil, der kan genbruges, til produktlanceringer. Filen skal udrulle en Azure Storage-konto og Azure App Service-ressourcer, som bruges til markedsføring af hvert nyt produkt under lanceringen.

I dette undermodul lærer du, hvordan du definerer en ressource i en Bicep-fil, hvordan ressourcenavne fungerer, og hvordan du kan oprette ressourcer, der er relateret til hinanden.

Notat

Kommandoerne i dette undermodul vises for at illustrere begreber. Kør ikke kommandoerne endnu. Du skal snart øve dig i det, du lærer her.

Definer en ressource

Det vigtigste, du skal gøre med Bicep-filer, er at definere dine Azure-ressourcer. Her er et eksempel på, hvordan en typisk ressourcedefinition ser ud i Bicep. I dette eksempel oprettes en lagerkonto med navnet toylaunchstorage.

resource storageAccount 'Microsoft.Storage/storageAccounts@2023-05-01' = {
  name: 'toylaunchstorage'
  location: 'westus3'
  sku: {
    name: 'Standard_LRS'
  }
  kind: 'StorageV2'
  properties: {
    accessTier: 'Hot'
  }
}

Lad os se nærmere på nogle vigtige dele af denne ressourcedefinition:

  • Nøgleordet resource i starten fortæller Bicep, at du er ved at definere en ressource.

  • Derefter skal du give ressourcen et symbolsk navn. I dette eksempel er storageAccountdette navn . Brug den i Bicep udtryk til at referere til ressourcen. Det adskiller sig fra det Azure ressourcenavn, der er tildelt via egenskabenname.

  • Microsoft.Storage/storageAccounts@2023-05-01 angiver ressourcetypen og API-versionen. Microsoft.Storage/storageAccountsdeklarerer en Azure lagerkonto. 2023-05-01 vælger ressourceudbyderens ADMINISTRATIONS-API-version, der bruges til den pågældende ressourceinstallation.

    Tips

    Udvidelsen Bicep for Visual Studio Code hjælper dig med at finde ressourcetyperne og API-versionerne for de ressourcer, du opretter. Hvis du kender ARM-skabeloner, skal du være opmærksom på, at API-versionen også stemmer overens med den version, du ville bruge der.

  • Du skal deklarere et ressourcenavn, som er det navn, som lagerkontoen tildeles i Azure. Du skal angive et ressourcenavn ved hjælp af nøgleordet name.

    Vigtigt

    Et symbolsk navn identificerer en ressource i skabelonen. Ressourcens name egenskab angiver Azure navn. Hvis du kun ændrer et symbolsk navn, omdøbes den udrullede Azure ressource ikke.

  • Du skal derefter angive andre oplysninger om ressourcen, f.eks. dens placering, SKU (prisniveau) og type. Der er også egenskaber, du kan definere, som er forskellige for hver ressourcetype. Forskellige API-versioner kan også introducere forskellige egenskaber. I dette eksempel angiver vi lagerkontoens adgangsniveau til Hot.

Tips

Ressourcenavne har ofte regler, du skal følge, f.eks. maksimumlængder, tilladte tegn og entydighed på tværs af hele Azure. Kravene til ressourcenavne er forskellige for hver Azure-ressourcetype. Sørg for at forstå navngivningsbegrænsningerne og -kravene, før du føjer dem til din Bicep-fil.

Hvad sker der, når ressourcer er afhængige af hinanden?

En Bicep-fil indeholder normalt flere ressourcer. Du skal ofte bruge en ressource for at være afhængig af en anden ressource. Du skal muligvis udtrække nogle oplysninger fra én ressource for at kunne definere en anden. Hvis du udruller et webprogram, skal du oprette serverinfrastrukturen, før du kan føje et program til det. Disse relationer kaldes afhængigheder.

Du skal installere en App Service-app til den Bicep fil, der hjælper med at starte legetøjsproduktet, men hvis du vil oprette en App Service-app, skal du først oprette en App Service-plan. App Service-planen repræsenterer serverværtsressourcerne, og den er erklæret som i dette eksempel:

resource appServicePlan 'Microsoft.Web/serverFarms@2023-12-01' = {
  name: 'toy-product-launch-plan'
  location: 'westus3'
  sku: {
    name: 'F1'
  }
}

Denne ressourcedefinition fortæller Bicep, at du vil installere en App Service-plan, der har ressourcetypen Microsoft.Web/serverFarms. Planressourcen hedder toy-product-launch-plan, og den er udrullet i området Det vestlige USA 3. Den bruger en prisvarenummer på F1, som er App Service's gratis niveau.

Nu, hvor du har erklæret App Service-planen, er det næste trin at deklarere appen:

resource appServiceApp 'Microsoft.Web/sites@2023-12-01' = {
  name: 'toy-product-launch-1'
  location: 'westus3'
  properties: {
    serverFarmId: appServicePlan.id
    httpsOnly: true
  }
}

Denne Bicep-fil giver Azure besked om at hoste appen på den plan, du har oprettet. I appens definition serverFarmId: appServicePlan.id skal du angive appens properties.serverFarmId egenskab til ressource-id'et for App Service-planen. Udtrykket bruger planens symbolske navn, , appServicePlantil at få adgang til dens id egenskab.

Tips

Et Azure ressource-id identificerer en ressource og dens omfang. For ressourcer, der er beregnet til ressourcegrupper i dette modul, indeholder id'et abonnements-id, navn på ressourcegruppe, navneområde for ressourceudbyder, ressourcetype og ressourcenavn. Ressourcer i andre områder bruger forskellige id-formater. Reference til en ressources id egenskab, f.eks appServicePlan.id. , i stedet for selv at oprette dens id. Du kan finde flere oplysninger under Bicep ressource-id-funktioner i afsnittet Flere oplysninger i oversigtsenheden.

Ved at erklære appressourcen med en egenskab, der refererer til planens symbolske navn, forstår Azure den implicitte afhængighed mellem App Service-appen og planen. Når ressourcerne udrulles, sikrer Azure, at den udruller planen fuldt ud, før den begynder at udrulle appen.