Dela via


Snabbstart: Skapa och distribuera din första Bicep-fil med Microsoft Graph-resurser

I den här snabbstarten skapar du en Bicep-fil som deklarerar en Microsoft Entra-säkerhetsgrupp och en hanterad tjänstidentitet (MSI), som representerar en Microsoft Graph-resurs respektive en Azure-resurs. Sedan lägger du till MSI som ägare av gruppen. Du lär dig också hur Bicep-tillägget förenklar utvecklingen genom att tillhandahålla typsäkerhet, syntaxvalidering och automatisk komplettering. Slutligen distribuerar du Bicep-filen med hjälp av en inloggad användare.

Viktigt!

Den här snabbstartsartikeln använder referenser av dynamisk typ i stället för inbyggda typer som är inaktuella och dras tillbaka den 24 januari 2025. Fram till slutdatumet samexisterar inbyggda typer, som anges av extension microsoftGraph, med de nya dynamiska typerna. Om någon av dina befintliga Bicep-filer använder inbyggda typer växlar du till att använda dynamiska typer för att undvika framtida problem med Bicep-fildistribution.

Viktigt!

Microsoft Graph Bicep är för närvarande i förhandsversion. Juridiska villkor för Azure-funktioner i betaversion, förhandsversion eller som av någon annan anledning inte har gjorts allmänt tillgängliga ännu finns i kompletterande användningsvillkor för Microsoft Azure-förhandsversioner.

Förutsättningar

Lägga till en Microsoft Graph-programgrupp

Starta VS Code och skapa två nya filer, main.bicep och bicepconfig.json i samma mapp.

För att kunna deklarera Microsoft Graph-resurser i en Bicep-fil måste du aktivera Bicep-förhandsgranskningsfunktionen och ange Microsoft Graph Bicep-typversionerna genom att konfigurera bicepconfig.json.

Det här exemplet använder v1.0-resurserna och deklarerar ett användarvänligt tilläggsnamn "microsoftGraphV1" för att referera br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview till typversionen i Microsofts artefaktregister.

{
    "experimentalFeaturesEnabled": {
        "extensibility": true
    },
    // specify an alias for the version of the v1.0 dynamic types package you want to use
    "extensions": {
      "microsoftGraphV1": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview"
    }
}

Du kan också deklarera Microsoft Graph-resurser från beta och v1.0 i samma Bicep-fil genom att lägga till en annan referens till en betatypversion från Microsofts artefaktregister.

I main.bicep skriver du extension microsoftGraphV1, där microsoftGraphV1 är ditt användarvänliga namn för att referera till paketet med dynamiska typer i Microsofts artefaktregister. Med extension instruktionen kan Bicep-kompilatorn veta att du inkluderar de Microsoft Graph-typer som du definierade i bicepconfig.json. På nästa rad definierar du en resurs med hjälp av nyckelordet resource . Skriv resource exampleGroup och lägg till ett blanksteg.

extension microsoftGraphV1

resource exampleGroup

När du lägger till ett blanksteg efter det symboliska namnet visas en lista med resurstyper. Fortsätt att skriva grupp tills du kan välja Microsoft.Graph/Groups bland de tillgängliga alternativen.

Skärmbild av att välja Microsoft Graph-grupper för resurstyp.

Dricks

Om du inte ser intellisense-alternativen i VS Code kontrollerar du att du har installerat Bicep-tillägget enligt kraven. Om du har installerat tillägget ger du Bicep-språktjänsten lite tid att starta när du har öppnat Bicep-filen. Ett meddelande i det nedre högra hörnet anger att tjänsten startas. När meddelandet försvinner körs tjänsten.

När du har valt Microsoft.Graph/Groups visas tillgängliga API-versioner – beta eller v1.0. Välj alltid v1.0 om den inte är tillgänglig eller om de resursegenskaper du behöver bara är tillgängliga i betaversionen. Använd v1.0 för den här snabbstarten.

Skärmbild av välj API-version för resurstyp.

Efter den enkla offerten för resurstypen lägger du till = och ett blanksteg. Du får alternativ för att lägga till egenskaper i resursen. Välj obligatoriska egenskaper.

Skärmbild av att lägga till nödvändiga egenskaper.

Det här alternativet lägger till alla egenskaper för den resurstyp som krävs för distributionen. När du har valt det här alternativet har din grupp följande egenskaper:

resource exampleGroup 'Microsoft.Graph/groups@v1.0' = {
  displayName: 
  mailEnabled: 
  mailNickname: 
  securityEnabled: 
  uniqueName: 
}

Ange värden för dessa egenskaper, ange mailEnabled till false och securityEnabled till true. uniqueName representerar en oföränderlig nyckel som tillhandahålls av klienten för den här gruppresursen.

Lägga till en hanterad identitetsresurs

VS Code med Bicep-tillägget förenklar utvecklingen genom att tillhandahålla fördefinierade kodfragment, till exempel ett kodfragment som skapar en hanterad identitet. I main.bicep skriver du man och väljer sedan res-managed-identity i listan och trycker sedan på [TAB] eller [RETUR].

Skärmbild av att lägga till ett resursfragment.

Obs! Resursfragment för utökningsbara resurser, till exempel Microsoft Graph-resurser, stöds inte för närvarande.

Bicep-filen innehåller nu följande kod:

resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
  name: 'name'
  location: location
}

Du kan åtgärda det saknade parameterdefinitionsfelet genom att lägga till en parameterdefinition för location. Under tilläggsdefinitionen lägger du till param location string = resourceGroup().location. Mer information om funktionen som används här finns i resourceGroup(). Ändra namnet på den hanterade identiteten från name till exampleManagedIdentity.

Gör den hanterade identiteten till ägare av gruppresursen

I resursen exampleGroup skapar du en ny rad under uniqueName, typ ow, som visar ägare som det enda matchande egenskapsalternativet och trycker sedan på [TAB] eller [RETUR].

Skärmbild av att lägga till en egenskap för ägare.

Egenskapen owners är en matris, så lägg till och referera nu till [] den hanterade identitetens huvud-ID med intellisense genom att skriva m och välja managedIdentity (det symboliska namnet för den hanterade identiteten), skriva en . och välja egenskaper, skriva en annan . och välja principalId.

Skärmbild av referens till den hanterade identiteten.

Filen main.bicep bör nu se ut ungefär så här:

extension microsoftGraphV1

param location string = resourceGroup().location

resource exampleGroup 'Microsoft.Graph/groups@v1.0' = {
  displayName: 'My example group'
  mailEnabled: false
  mailNickname: 'my-example-group'
  securityEnabled: true
  uniqueName: 'myExampleGroup'
  owners: [managedIdentity.properties.principalId]
}

resource managedIdentity 'Microsoft.ManagedIdentity/userAssignedIdentities@2018-11-30' = {
  name: 'exampleManagedIdentity'
  location: location
}

Distribuera Bicep-filen med en inloggad användare

Distribuera Bicep-filen genom att logga in på Azure CLI eller Azure PowerShell med hjälp av följande exempel. Azure CLI-exemplen i den här dokumentationen använder Bash-konsolen.

## Sign in to Azure CLI
az login

## Create a resource group
az group create --name exampleRG --location eastus

## Deploy the Bicep file
az deployment group create --resource-group exampleRG --template-file main.bicep

När distributionen är klar bör du se ett meddelande som anger att distributionen lyckades.

Kommentar

På grund av replikeringsfördröjningar kan det leda till att distributionen misslyckas genom att lägga till den hanterade tjänstidentiteten (MSI) som ägare av Microsoft Entra-gruppen. Vänta lite och distribuera sedan samma Bicep-fil igen.

Rensa resurser

När Azure-resurserna inte längre behövs använder du Azure CLI- eller Azure PowerShell-modulen för att ta bort snabbstartsresursgruppen.

Kommentar

Resursgrupper är ett Azure-koncept och påverkar inte Microsoft Graph-resurser. Microsoft Graph-resurser måste rensas med en ytterligare begäran till Microsoft Graph. För detta kan du använda Azure CLI eller Azure PowerShell, Microsoft Graph CLI eller Microsoft Graph PowerShell.

I följande exempel visas kommandon för att ta bort Azure-resursen först och sedan Microsoft Graph-resursen med hjälp av Azure CLI och Azure PowerShell.

## Delete the resource group
az group delete --name exampleRG

## Delete the Microsoft Graph group
az rest --method delete --url 'https://graph.microsoft.com/v1.0/groups%28uniqueName=%27myExampleGroup%27%29'

Gå vidare