Dela via


Referera till befintliga Microsoft Graph-resurser i Bicep-mallar

Med Bicep kan du läsa befintliga resurser med hjälp av det befintliga nyckelordet. För Microsoft Graph-resurser måste resurserna först identifieras unikt av en nyckelegenskap som tillhandahålls av klienten.

I den här artikeln får du lära dig hur du använder nyckelordet existing och nyckeln som tillhandahålls av klienten för att läsa egenskaperna för befintliga Microsoft Graph-resurser.

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äs egenskaper för en befintlig Microsoft Graph-resurs

Följande steg visar hur du refererar till en befintlig grupp och ett befintligt program efter deras unika namn i en Bicep-fil.

  1. Starta VS Code och skapa två nya filer, main.bicep och bicepconfig.json, så att de finns i samma mapp.

  2. Aktivera vissa förhandsgranskningsfunktioner genom att konfigurera bicepconfig.json:

    {
        "experimentalFeaturesEnabled": {
            "extensibility": true
        }
    }
    
  3. I main.bicep lägger du till följande Bicep-kod, som använder nyckelordet existing för att referera till gruppen med dess unika namn TestGroup-20240816 och programmet efter TestApp-20240816. Det här steget förutsätter att gruppen och programmet med de angivna unika namnen redan finns.

    extension microsoftGraph
    
    @description('Group to use')
    param groupName string = 'TestGroup-20240816'
    
    @description('App to use')
    param appName string = 'TestApp-20240816'
    
    resource group 'Microsoft.Graph/groups@v1.0' existing = {
        uniqueName: groupName
    }
    
    resource application 'Microsoft.Graph/applications@v1.0' existing = {
        uniqueName: appName
    }
    
    output groupId string = group.id
    output applicationId string = application.id
    
  4. Distribuera Bicep-filen med Hjälp av Azure CLI eller Azure PowerShell.

    ## 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
    


  DeploymentName          : main
  ResourceGroupName       : exampleRG
  ProvisioningState       : Succeeded
  Timestamp               : 18/04/2024 16:16:42
  Mode                    : Incremental
  TemplateLink            :
  Parameters              :
                          Name             Type                       Value
                          ===============  =========================  ==========
                          groupName        String                     "TestGroup-20240816"
                          appName          String                     "TestApp-20240816"


  Outputs                 :
                          Name             Type                       Value
                          ===============  =========================  ==========
                          group-id         String                     "91ded94c-0144-4422-b33c-c4171447a738"
                          app-id           String                     "cd0bc6bc-fd22-4eb6-9bd3-2f8c5efd6dc9"

Du använder ID:t för gruppen i nästa avsnitt.

Uppdatera eller skapa en Microsoft Graph-resurs med hjälp av inställningar från befintliga resurser

Du kanske också vill distribuera en Microsoft Graph-resurs och konfigurera några av dess egenskaper med hjälp av inställningarna från en befintlig resurs. Du vill till exempel distribuera en säkerhetsgrupp nr 1 (ny distribution eller omdistribution) med en befintlig grupp nr 2 och tjänstens huvudnamn 2 som medlemmar. I det här fallet använder du nyckelordet existing för att referera till grupp 2 och tjänstens huvudnamn 2 och hämta deras ID:n, som du sedan lägger till i medlemssamlingen i grupp 1.

Om du vill referera till den befintliga gruppen #2 i en Bicep-fil måste den ha egenskapen uniqueName inställd. Om du vill referera till det befintliga tjänstens huvudnamn nr 2 om du inte känner till dess appId måste dess överordnade program ha egenskapen uniqueName inställd.

I det här avsnittet får du:

  • Uppdatera egenskapen uniqueName för en befintlig grupp och ett befintligt program med hjälp av Azure CLI eller Azure PowerShell.
  • Använd nyckelordet existing i en Bicep-fil för att hämta ID:t för en befintlig grupp och tjänstens huvudnamn.
  • I Bicep-filen konfigurerar du inställningarna för att distribuera en säkerhetsgrupp med en befintlig grupp och tjänstens huvudnamn som medlemmar och tjänstens huvudnamn som ägare.
  • Distribuera Bicep-filen.

Steg 1: Ange egenskapen uniqueName för gruppen och programmet

Följande begäran anger uniqueName för en befintlig grupp och ett befintligt program till TestApp-20240817TestGroup-20240817 respektive . Anta att gruppen och programmet är grupp nr 2 och överordnad app för tjänstens huvudnamn 2 från föregående scenario.

# Sign in to Azure
az login

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

## Update the uniqueName property of the group and application
## Note: Replace cec00de2-08b9-4081-aaf5-55d78ac9b4c4 and 25ae6414-05a1-4cce-9899-ad11d9eedde2 with IDs for your group and application.
az rest --method patch --url 'https://graph.microsoft.com/v1.0/groups/cec00de2-08b9-4081-aaf5-55d78ac9b4c4' --body '{\"uniqueName\": \"TestGroup-20240817\"}' --headers "content-type=application/json"
az rest --method patch --url 'https://graph.microsoft.com/v1.0/applications/25ae6414-05a1-4cce-9899-ad11d9eedde2' --body '{\"uniqueName\": \"TestApp-20240817\"}' --headers "content-type=application/json"

Steg 2: Lägg till befintlig grupp och tjänstens huvudnamn till medlemmar och ägare av en annan grupp

Nu kan du använda nyckelordet existing för att referera till den befintliga gruppen #2 och tjänstens huvudnamn 2, hämta deras ID:n och lägga till dem i ägare och medlemssamlingar i en annan grupp.

  1. Starta VS Code och skapa två nya filer, main.bicep och bicepconfig.json, så att de finns i samma mapp.

  2. Aktivera vissa förhandsgranskningsfunktioner genom att konfigurera bicepconfig.json:

    {
      "experimentalFeaturesEnabled": {
          "extensibility": true
      }
    }
    
  3. Lägg till följande Bicep-kod i main.bicep.

    extension microsoftGraph
    
    // TEMPLATE OVERVIEW: Uses existing group and existing SP and sets them
    // as members of another group
    
    // existing group #2 to be added as a member
    resource groupMember 'Microsoft.Graph/groups@v1.0' existing = {
      uniqueName: 'TestGroup-20240817'
    }
    
    // existing SP #2 to be added as a member
    resource application 'Microsoft.Graph/applications@v1.0' existing = {
      uniqueName: 'TestApp-20240817'
    }
    resource servicePrincipalMember 'Microsoft.Graph/servicePrincipals@v1.0' existing = {
      appId: application.appId
    }
    
    // Add preceding service principal and group as members of another group
    // Add preceding service principal as owner of the group. 
    // If Group-1 uniqueName doesn't exist, this is a new deployment.
    // If Group-1 uniqueName exists, this is a redeployment/update. For redeployments, existing members and owners are retained.
    resource group 'Microsoft.Graph/groups@v1.0' = {
      displayName: 'Group-1'
      mailEnabled: false
      mailNickname: 'Group-1'
      securityEnabled: true
      uniqueName: 'Group-1'
      members: [groupMember.id, servicePrincipalMember.id]
      owners: [servicePrincipalMember.id]
    }
    
  4. Distribuera Bicep-filen med Hjälp av Azure CLI eller Azure PowerShell.

    ## 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.