Udostępnij za pośrednictwem


Dołączanie istniejących zasobów programu Microsoft Graph do użycia w szablonach Bicep

Istniejące zasoby programu Microsoft Graph można odwoływać w szablonach Bicep według obsługiwanej właściwości klucza dostarczonego przez klienta. Zasoby utworzone za pośrednictwem protokołu HTTP POST mogą nie mieć tego zestawu właściwości i wymagać jednorazowego wypełniania.

Po ustawieniu właściwość klucza dostarczonego przez klienta umożliwia zadeklarowanie zasobu w pliku Bicep na potrzeby ponownego wdrożenia. Aby odczytać właściwości zasobu bez ponownego wdrażania, użyj istniejącego słowa kluczowego.

Z tego artykułu dowiesz się, jak używać słowa kluczowego existing i klucza dostarczonego przez klienta do odczytywania właściwości istniejących zasobów programu Microsoft Graph.

Ważne

Program Microsoft Graph Bicep jest obecnie w wersji zapoznawczej. Zobacz Dodatkowe warunki użytkowania wersji zapoznawczych platformy Microsoft Azure, aby zapoznać się z postanowieniami prawnymi dotyczącymi funkcji platformy Azure, które są w wersji beta lub wersji zapoznawczej albo w inny sposób nie zostały jeszcze wydane jako ogólnie dostępne.

Bicep umożliwia odczytywanie istniejących zasobów przy użyciu istniejącego słowa kluczowego. W przypadku zasobów programu Microsoft Graph zasoby muszą być najpierw jednoznacznie identyfikowane przez właściwość klucza dostarczonego przez klienta.

Wymagania wstępne

Dołączanie istniejących zasobów programu Microsoft Graph i używanie tych zasobów w pliku Bicep

W tym przykładzie możesz mieć niektóre zasoby programu Microsoft Graph, które nie zostały utworzone za pomocą wdrożenia pliku Bicep, które są teraz potrzebne do użycia lub zarządzania w pliku Bicep. Na przykład chcesz zaktualizować istniejącą aplikację lub wdrożyć grupę zabezpieczeń #1 (nowe wdrożenie lub ponowne wdrożenie) przy użyciu istniejącej grupy #2 i jednostki usługi #2 jako jej elementów członkowskich.

Aby odwołać się do istniejącej grupy #2 w pliku Bicep, musi mieć zestaw właściwości uniqueName . Aby odwołać się do istniejącej jednostki usługi #2, jeśli nie znasz jej identyfikatora appId, jej aplikacja nadrzędna musi mieć ustawioną właściwość uniqueName .

W tej sekcji omówiono następujące zagadnienia:

  • Dodaj właściwość uniqueName dla istniejącej grupy i aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
  • Zaktualizuj istniejącą aplikację w pliku Bicep.
  • Użyj słowa kluczowego existing w tym samym pliku Bicep, aby uzyskać identyfikator istniejącej grupy oraz głównego elementu usługi.
  • W pliku Bicep skonfiguruj ustawienia, aby wdrożyć grupę zabezpieczeń z istniejącą grupą i jednostką usługi jako jej członkami oraz jednostką usługi jako właścicielem.
  • Wdróż plik Bicep.

Krok 1. Ustawianie właściwości uniqueName dla grupy i aplikacji

Następujące żądanie ustawia unikatową nazwę dla istniejącej grupy i aplikacji odpowiednio na TestGroup-20241202 i TestApp-20241202.

Ważne

Nie można zmienić właściwości uniqueName klucza dostarczonego przez klienta po ustawieniu.

# 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-20241202\"}' --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-20241202\"}' --headers "content-type=application/json"

Krok 2. Dodawanie istniejącej grupy i jednostki usługi do członków i właścicieli innej grupy

Teraz możesz użyć słowa kluczowego existing , aby odwołać się do istniejącej grupy #2 i jednostki usługi #2, pobrać ich identyfikatory i dodać je do kolekcji właścicieli i członków innej grupy.

  1. Uruchom program VS Code i utwórz dwa nowe pliki main.bicep i bicepconfig.json, upewniając się, że znajdują się one w tym samym folderze.

  2. Włącz niektóre funkcje w wersji zapoznawczej, konfigurując bicepconfig.json:

    {
      "experimentalFeaturesEnabled": {
          "extensibility": true
      }
    }
    
  3. W pliku main.bicep dodaj następujący kod Bicep.

    extension 'br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview'
    
    // TEMPLATE OVERVIEW: Updates an existing app and 
    // 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-20241202'
    }
    
    // existing application to be updated with a new display name
    // and for its SP #2 to be added as a member (to group #1)
    resource application 'Microsoft.Graph/applications@v1.0' = {
      uniqueName: 'TestApp-20241202'
      displayName: 'Updating the displayName to something new'
    }
    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. Wdróż plik Bicep przy użyciu interfejsu wiersza polecenia platformy Azure lub programu 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
    

Po zakończeniu wdrażania powinien zostać wyświetlony komunikat informujący o pomyślnym wdrożeniu.