Поделиться через


Краткое руководство. Создание и развертывание первого файла Bicep с помощью ресурсов Microsoft Graph

В этом кратком руководстве вы создадите файл Bicep, который объявляет группу безопасности Microsoft Entra и управляемое удостоверение службы (MSI), представляющую ресурс Microsoft Graph и ресурс Azure соответственно. Затем вы добавите MSI в качестве владельца группы. Вы также узнаете, как расширение Bicep упрощает разработку, предоставляя безопасность типов, проверку синтаксиса и автозавершение. Наконец, вы развернете файл Bicep с помощью пользователя, вошедшего в систему.

Внимание

В этой статье краткого руководства используются ссылки на динамические типы вместо встроенных типов, которые устарели и будут прекращены 24 января 2025 года. До даты выхода на пенсию встроенные типы, обозначаемые extension microsoftGraph, будут сосуществовать с новыми динамическими типами. Если любой из существующих файлов Bicep использует встроенные типы, переключитесь на использование динамических типов, чтобы избежать будущих проблем с развертыванием файлов Bicep.

Внимание

Microsoft Graph Bicep в настоящее время находится в предварительной версии. Юридические условия, применимые к функциям Azure, которые находятся в состоянии бета-версии, предварительной версии или иным образом еще не выпущены в общедоступной версии, см. на странице Дополнительные условия использования предварительных версий в Microsoft Azure.

Необходимые компоненты

Добавление группы приложений Microsoft Graph

Запустите VS Code и создайте два новых файла, main.bicep и bicepconfig.json в одной папке.

Затем, чтобы объявить ресурсы Microsoft Graph в файле Bicep, необходимо включить предварительную версию Bicep и указать версии типов Bicep в Microsoft Graph, настроив bicepconfig.json.

В этом примере используются ресурсы версии 1.0 и объявляется понятное имя расширения "microsoftGraphV1_0" для ссылки на br:mcr.microsoft.com/bicep/extensions/microsoftgraph/v1.0:0.1.8-preview версию типа в Реестр артефактов Microsoft.

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

Вы также можете объявить ресурсы Microsoft Graph из бета-версии и версии 1.0 в том же файле Bicep, добавив еще одну ссылку на версию бета-типа из Реестр артефактов Microsoft.

В main.bicep введите extension microsoftGraphV1_0microsoftGraphV1_0 понятное имя для ссылки на пакет динамических типов в Реестр артефактов Microsoft. Инструкция extension позволяет компилятору Bicep знать, что вы включаете типы Microsoft Graph, определенные в bicepconfig.json. В следующей строке определите ресурс с помощью ключевого resource слова. Введите resource exampleGroup и добавьте пробел.

extension microsoftGraphV1_0

resource exampleGroup

При добавлении пробела после символического имени отобразится список типов ресурсов. Продолжайте вводить группу, пока не сможете выбрать Microsoft.Graph/Groups из доступных параметров.

Снимок экрана: выбор групп Microsoft Graph для типа ресурса.

Совет

Если параметры intellisense не отображаются в VS Code, убедитесь, что вы установили расширение Bicep, как указано в предварительных требованиях. Если расширение установлено, подождите некоторое время после открытия файла Bicep. При запуске службы появляется уведомление в правом нижнем углу. Когда оно исчезнет, расширение должно работать.

Выбрав Microsoft.Graph/Groups, вы получите доступные версии API — бета-версию или версию 1.0. Всегда выбирайте версию 1.0, если она недоступна или необходимые свойства ресурсов доступны только в бета-версии. В этом кратком руководстве используйте версию 1.0.

Снимок экрана: выбор версии API для типа ресурса.

После одинарной кавычки, указанной для типа ресурса, добавьте = и пробел. Отобразятся параметры для добавления свойств в ресурс. Выберите обязательные свойства.

Снимок экрана: добавление обязательных свойств.

Этот параметр добавляет все свойства для типа ресурса, требуемые для его развертывания. После выбора этого параметра группа имеет следующие свойства:

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

Укажите значения этих свойств, задав mailEnabled и securityEnabledtrue. false uniqueName представляет неизменяемый ключ, предоставленный клиентом для этого ресурса группы.

Добавление ресурса управляемого удостоверения

VS Code с расширением Bicep упрощает разработку, предоставляя предопределенные фрагменты кода, например фрагмент кода, который создает управляемое удостоверение. В main.bicep введите man, а затем выберите res-managed-identity из списка, а затем нажмите клавишу [TAB] или [ВВОД].

Снимок экрана: добавление фрагмента ресурса.

Примечание. Фрагменты ресурсов для расширяемых ресурсов, например ресурсов Microsoft Graph, в настоящее время не поддерживаются.

Файл Bicep теперь содержит следующий код.

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

Чтобы устранить ошибку определения отсутствующих параметров, добавьте определение параметра для location. В определении расширения добавьте param location string = resourceGroup().location. Дополнительные сведения о функции, используемой здесь, см . в разделе resourceGroup(). Измените имя управляемого удостоверения на name exampleManagedIdentity.

Создание управляемого удостоверения владельцем ресурса группы

В ресурсе exampleGroup создайте новую строку в uniqueNameразделе , введите ow, в котором отображаются владельцы как единственный соответствующий параметр свойства, а затем нажмите клавишу [TAB] или [ВВОД].

Снимок экрана: добавление свойства владельцев.

Свойство владельцев представляет собой массив, поэтому добавьте [] и теперь сослаться на идентификатор субъекта управляемого удостоверения с помощью intellisense, введя m и выбрав managedIdentity (символическое имя для управляемого удостоверения), введя идентификатор . и выбрав свойства, введя другой . и выбрав субъектId.

Снимок экрана: ссылка на управляемое удостоверение.

Теперь файл main.bicep должен выглядеть примерно так:

extension microsoftGraphV1_0

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
}

Развертывание файла Bicep с помощью вошедшего пользователя

Разверните Bicep-файл, выполнив вход в Azure CLI или Azure PowerShell, используя следующие примеры. Примеры Azure CLI в этой документации используют консоль 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

После завершения развертывания должно отобразиться сообщение о том, что развертывание успешно выполнено.

Примечание.

Из-за задержек репликации добавление управляемого удостоверения службы (MSI) в качестве владельца группы Microsoft Entra может привести к сбою развертывания. Подождите немного, а затем снова разверните тот же файл Bicep.

Очистка ресурсов

Если ресурсы Azure больше не нужны, используйте Azure CLI или модуль Azure PowerShell, чтобы удалить группу ресурсов, созданную для краткого руководства.

Примечание.

Группы ресурсов — это концепция Azure и не влияют на ресурсы Microsoft Graph. Ресурсы Microsoft Graph необходимо очистить с дополнительным запросом к Microsoft Graph. Для этого можно использовать Azure CLI или Azure PowerShell, Microsoft Graph CLI или Microsoft Graph PowerShell.

В следующих примерах показаны команды для удаления ресурса Azure, а затем ресурса Microsoft Graph с помощью Azure CLI и 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'

Следующий шаг