Udostępnij za pośrednictwem


Szybki start: tworzenie i wdrażanie pierwszego pliku Bicep przy użyciu zasobów programu Microsoft Graph

W tym przewodniku Szybki start pokazano, jak utworzyć plik Bicep przy użyciu rozszerzenia Bicep programu VS Code na potrzeby bezpieczeństwa typów, walidacji składni i autouzupełniania. Zadeklarujesz grupę zabezpieczeń Firmy Microsoft Entra i tożsamość usługi zarządzanej (MSI) i dodasz tożsamość usługi zarządzanej jako właściciela grupy, a na koniec wdrożysz plik przy użyciu zalogowanego użytkownika.

Prerequisites

  • Subskrypcja platformy Azure: utwórz bezpłatne konto , jeśli go nie masz.
  • Narzędzia Bicep: zainstaluj narzędzia Bicep do tworzenia i wdrażania. W tym przewodniku jest używany program VS Code z rozszerzeniem Bicep i interfejsem wiersza polecenia platformy Azure. Minimalna wymagana wersja Bicep: v0.36.1.
  • Rola Firmy Microsoft Entra: Upewnij się, że masz uprawnienia do tworzenia grupy zabezpieczeń. Domyślnie użytkownicy mają to uprawnienie, ale administratorzy mogą je ograniczyć. W przypadku ograniczenia potrzebna jest co najmniej rola Administrator grup.

Dodawanie grupy aplikacji programu Microsoft Graph

Utwórz dwa pliki w programie VS Code: main.bicep i bicepconfig.json. Powinny znajdować się w tym samym folderze.

W bicepconfig.jsonokreśl wersję typu Bicep programu Microsoft Graph. W tym przykładzie użyto zasobów w wersji 1.0 i przypisano alias "microsoftGraphV1" dla br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:1.0.0 wersji typu.

{
  "extensions": {
    "microsoftGraphV1": "br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:1.0.0"
  }
}

Możesz również zadeklarować zasoby programu Microsoft Graph z wersji beta i 1.0 w tym samym pliku Bicep, dodając kolejne odwołanie do wersji typu beta z Rejestr Artefaktów Microsoft.

W pliku main.bicep wpisz extension microsoftGraphV1, gdzie microsoftGraphV1 jest przyjazną dla użytkownika nazwą do odwoływania się do pakietu typów dynamicznych w rejestrze Microsoft Artifact Registry. Instrukcja extension pozwala kompilatorowi Bicep wiedzieć, że są uwzględniane typy programu Microsoft Graph zdefiniowane w bicepconfig.json . W następnym wierszu zdefiniuj zasób przy użyciu słowa kluczowego resource . Wpisz resource exampleGroup.

extension microsoftGraphV1

resource exampleGroup

Dodaj spację po nazwie symbolicznej, aby wyświetlić listę typów zasobów. Kontynuuj wpisywanie grupy , a następnie wybierz pozycję Microsoft.Graph/Groups z dostępnych opcji.

Zrzut ekranu przedstawiający wybieranie grup programu Microsoft Graph dla typu zasobu.

Tip

Jeśli nie widzisz opcji funkcji IntelliSense w programie VS Code, upewnij się, że zainstalowano rozszerzenie Bicep zgodnie z wymaganiami wstępnymi. Jeśli rozszerzenie jest zainstalowane, daj usłudze językowej Bicep trochę czasu, aby rozpocząć po otwarciu pliku Bicep. Powiadomienie w prawym dolnym rogu wskazuje, że usługa jest uruchamiana. Gdy to powiadomienie zniknie, usługa jest uruchomiona.

Po wybraniu pozycji Microsoft.Graph/Groups zostanie wyświetlona dostępna wersja interfejsu API — wersja beta lub wersja 1.0. Wybierz wersję 1.0, chyba że jest niedostępna lub wymagane właściwości zasobów są dostępne tylko w wersji beta. W tym przewodniku Szybki start użyj wersji 1.0.

Zrzut ekranu przedstawiający wybieranie wersji interfejsu API dla typu zasobu.

Po pojedynczym cudzysłowie dla typu zasobu dodaj = i spację. Zostaną wyświetlone opcje dodawania właściwości do zasobu. Select required-properties.

Zrzut ekranu przedstawiający dodawanie wymaganych właściwości.

Ta opcja dodaje wszystkie właściwości typu zasobu, które są wymagane do wdrożenia. Po wybraniu tej opcji grupa ma następujące właściwości:

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

Podaj wartości tych właściwości: ustaw wartość mailEnabled na false, securityEnabled na true, i uniqueName na niezmienny klucz udostępniony przez klienta dla zasobu grupy.

Dodawanie zasobu tożsamości zarządzanej

Program VS Code z rozszerzeniem Bicep upraszcza programowanie, udostępniając wstępnie zdefiniowane fragmenty kodu, takie jak fragment kodu, który tworzy tożsamość zarządzaną. W pliku main.bicep wpisz man, a następnie wybierz pozycję res-managed-identity z listy i naciśnij [TAB] lub [ENTER].

Zrzut ekranu przedstawiający dodawanie fragmentu kodu zasobu. Obraz przedstawia proces wyboru fragmentu kodu w programie Visual Studio Code.

Uwaga:Fragmenty zasobów dla rozszerzalnych zasobów, takich jak zasoby programu Microsoft Graph, nie są obsługiwane.

Plik Bicep zawiera teraz następujący kod:

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

Napraw błąd brakującej definicji parametru, dodając definicję parametru dla elementu location. W obszarze definicji rozszerzenia wprowadź .param location string = resourceGroup().location Aby uzyskać więcej informacji na temat funkcji używanej tutaj, zobacz resourceGroup(). Zmień nazwę tożsamości zarządzanej z name na exampleManagedIdentity.

Ustaw tożsamość zarządzaną jako właściciela zasobu grupy

W zasobie exampleGroup utwórz nowy wiersz w obszarze uniqueName. Wpisz ow, który pokazuje właścicieli jako jedyną zgodną opcję właściwości, a następnie wybierz pozycję [TAB] lub [ENTER].

Zrzut ekranu przedstawiający dodawanie właściwości właścicieli.

Właściwość owner jest obiektem. Wybierz pozycję [SPACJA] i wybierz pozycję required-properties. Właściwość owner wygląda następująco:

owners: {
  relationships:
}

Właściwość relacje jest tablicą. Dodaj [] i odwołaj się do identyfikatora jednostki tożsamości zarządzanej przy użyciu funkcji IntelliSense. Wpisz m i wybierz wartość managedIdentity (nazwa symboliczna tożsamości zarządzanej), wpisz wartość . i wybierz właściwości, a następnie wpisz inny . i wybierz wartość principalId.

Plik main.bicep wygląda następująco:

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: {
    relationships: [managedIdentity.properties.principalId]
  }
}

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

Wdrażanie pliku Bicep przy użyciu zalogowanego użytkownika

Wdróż plik Bicep, logując się do interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell. Te przykłady interfejsu wiersza polecenia platformy Azure używają konsoli powłoki Bash.

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

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

Note

Z powodu opóźnień replikacji dodanie tożsamości usługi zarządzanej (MSI) jako właściciela grupy Microsoft Entra może spowodować niepowodzenie wdrożenia. Poczekaj krótko, a następnie ponownie wdróż ten sam plik Bicep.

Czyszczenie zasobów

Gdy nie potrzebujesz już utworzonych zasobów platformy Azure, użyj interfejsu wiersza polecenia platformy Azure lub programu Azure PowerShell, aby usunąć grupę zasobów szybkiego startu.

Note

Grupy zasobów to koncepcja platformy Azure i nie mają wpływu na zasoby programu Microsoft Graph. Zasoby programu Microsoft Graph wymagają innego żądania do programu Microsoft Graph w celu oczyszczenia. Możesz użyć interfejsu wiersza polecenia platformy Azure, programu Azure PowerShell lub programu Microsoft Graph PowerShell.

W poniższych przykładach pokazano polecenia umożliwiające najpierw usunięcie zasobu platformy Azure, a następnie zasób programu Microsoft Graph przy użyciu interfejsu wiersza polecenia platformy Azure i programu 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'

Next step