Odwołuj się do istniejących zasobów programu Microsoft Graph w szablonach Bicep
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.
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.
Wymagania wstępne
- Mieć subskrypcję platformy Azure. Jeśli nie masz, możesz utworzyć bezpłatne konto.
- Mieć najmniej uprzywilejowane uprawnienia lub role, aby odczytywać lub aktualizować istniejący zasób albo być właścicielem zasobu. Aby zobaczyć, jakie role należy przypisać, zapoznaj się z rolami o najmniejszych uprawnieniach uprzywilejowanych według zadań i domyślnych użytkowników .
- Zainstaluj narzędzia Bicep do tworzenia i wdrażania. Ten przewodnik Szybki start używa programu VS Code z rozszerzeniem Bicep do tworzenia i interfejsu wiersza polecenia platformy Azure na potrzeby wdrażania. Przykłady są również udostępniane dla programu Azure PowerShell.
- Pliki Bicep można wdrożyć interaktywnie lub za pomocą wdrożenia typu zero-touch (tylko aplikacja).
Odczytywanie właściwości istniejącego zasobu programu Microsoft Graph
W poniższych krokach pokazano, jak odwoływać się do istniejącej grupy i aplikacji według ich unikatowej nazwy w pliku Bicep.
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.
Włącz niektóre funkcje w wersji zapoznawczej, konfigurując bicepconfig.json:
{ "experimentalFeaturesEnabled": { "extensibility": true } }
W pliku main.bicep dodaj następujący kod Bicep, który używa słowa kluczowego
existing
do odwołowania się do grupy według jego unikatowej nazwyTestGroup-20240816
i aplikacji wedługTestApp-20240816
. W tym kroku przyjęto założenie, że grupa i aplikacja o określonych unikatowych nazwach już istnieją.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
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
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"
Identyfikator grupy należy użyć w następnej sekcji.
Aktualizowanie lub tworzenie zasobu programu Microsoft Graph przy użyciu ustawień z istniejących zasobów
Możesz również wdrożyć zasób programu Microsoft Graph i skonfigurować niektóre jego właściwości przy użyciu ustawień z istniejącego zasobu. Na przykład chcesz 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 członków. W tym przypadku użyjesz słowa kluczowego existing
, aby odwołać się do grupy #2 i jednostki usługi #2 i pobrać ich identyfikatory, które następnie zostaną dodane do kolekcji członków grupy #1.
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:
- Zaktualizuj właściwość uniqueName dla istniejącej grupy i aplikacji przy użyciu interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell.
existing
Użyj słowa kluczowego w pliku Bicep, aby uzyskać identyfikator istniejącej grupy i jednostki 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-20240817
i TestApp-20240817
. Załóżmy, że grupa i aplikacja to grupa #2 i nadrzędna aplikacja jednostki usługi #2 z poprzedniego scenariusza.
# 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"
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.
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.
Włącz niektóre funkcje w wersji zapoznawczej, konfigurując bicepconfig.json:
{ "experimentalFeaturesEnabled": { "extensibility": true } }
W pliku main.bicep dodaj następujący kod 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] }
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.