Краткое руководство. Развертывание определения управляемого приложения Azure с помощью Bicep

В этом кратком руководстве описывается, как использовать Bicep для развертывания определения управляемого приложения Azure из каталога служб. Определение в каталоге служб доступно членам вашей организации.

Чтобы развернуть определение управляемого приложения из каталога служб, выполните следующие задачи:

  • Используйте Bicep для разработки шаблона, который развертывает определение управляемого приложения.
  • Создайте файл параметров для развертывания.
  • Разверните определение управляемого приложения из каталога служб.

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

Чтобы выполнить задачи в этой статье, вам потребуется следующее:

Получение определения управляемого приложения

Чтобы получить определение управляемого приложения с помощью Azure PowerShell, выполните следующие команды.

В Visual Studio Code откройте новый терминал PowerShell и войдите в подписку Azure.

Connect-AzAccount

Команда открывает браузер по умолчанию и запрашивает вход в Azure. Дополнительные сведения см. в разделе "Вход с помощью Azure PowerShell".

Из Azure PowerShell получите определение управляемого приложения. В этом примере используйте имя группы ресурсов bicepDefinitionGroup , созданное при развертывании определения управляемого приложения.

Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup

Get-AzManagedApplicationDefinition перечисляет все доступные определения в указанной группе ресурсов, например sampleBicepManagedApplication.

Следующая команда анализирует выходные данные, чтобы отобразить только имя определения и имя группы ресурсов. Имена используются при развертывании управляемого приложения.

Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup | Select-Object -Property Name, ResourceGroupName

Создание файла Bicep

Откройте Visual Studio Code и создайте имя файла deployServiceCatalog.bicep. Скопируйте и вставьте следующий код в файл и сохраните его.

@description('Region where the resources are deployed.')
param location string = resourceGroup().location

@description('Resource group name where the definition is stored.')
param definitionRG string

@description('Name of the service catalog definition.')
param definitionName string

// Parameters for the managed application's resource deployment
@description('Name of the managed application.')
param managedAppName string

@description('Name for the managed resource group.')
param mrgName string

@maxLength(40)
@description('Service plan name with maximum 40 alphanumeric characters and hyphens. Must be unique within a resource group in your subscription.')
param appServicePlanName string

@maxLength(47)
@description('Globally unique across Azure. Maximum of 47 alphanumeric characters or hyphens.')
param appServiceNamePrefix string

@maxLength(11)
@description('Use only lowercase letters and numbers and a maximum of 11 characters.')
param storageAccountNamePrefix string

@allowed([
  'Premium_LRS'
  'Standard_LRS'
  'Standard_GRS'
])
@description('The options are Premium_LRS, Standard_LRS, or Standard_GRS')
param storageAccountType string

@description('Resource ID for the managed application definition.')
var appResourceId = resourceId('${definitionRG}', 'Microsoft.Solutions/applicationdefinitions', '${definitionName}')

@description('Creates the path for the managed resource group. The resource group is created during deployment.')
var mrgId = '${subscription().id}/resourceGroups/${mrgName}'

resource bicepServiceCatalogApp 'Microsoft.Solutions/applications@2021-07-01' = {
  name: managedAppName
  kind: 'ServiceCatalog'
  location: location
  properties: {
    applicationDefinitionId: appResourceId
    managedResourceGroupId: mrgId
    parameters: {
      appServicePlanName: {
        value: appServicePlanName
      }
      appServiceNamePrefix: {
        value: appServiceNamePrefix
      }
      storageAccountNamePrefix: {
        value: storageAccountNamePrefix
      }
      storageAccountType: {
        value: storageAccountType
      }
    }
  }
}

Дополнительные сведения о типе ресурса см. в разделе Microsoft.Solutions/applications.

Создание файла параметров

Откройте Visual Studio Code и создайте файл параметров с именем deployServiceCatalog-parameters.bicepparam. Скопируйте и вставьте следующий код в файл и сохраните его.

using './deployServiceCatalog.bicep'

param definitionName = 'sampleBicepManagedApplication'
param definitionRG = 'bicepDefinitionGroup'
param managedAppName = 'sampleBicepManagedApp'
param mrgName = 'placeholder for managed resource group name'
param appServicePlanName = 'demoAppServicePlan'
param appServiceNamePrefix = 'demoApp'
param storageAccountNamePrefix = 'demostg1234'
param storageAccountType = 'Standard_LRS'

Для развертывания управляемого приложения необходимо указать несколько параметров:

Параметр Значение
definitionName Имя определения каталога служб. В этом примере используется sampleBicepManagedApplication.
definitionRG Имя группы ресурсов, в которой хранится определение. В этом примере используется bicepDefinitionGroup.
managedAppName Имя развернутого управляемого приложения. В этом примере используется sampleBicepManagedApp.
mrgName Уникальное имя управляемой группы ресурсов, содержащей развернутые ресурсы приложения. Группа ресурсов создается при развертывании управляемого приложения. Чтобы создать имя управляемой группы ресурсов, выполните команды, следующие за этим списком параметров, и используйте $mrgname значение для замены заполнителя в файле параметров.
appServicePlanName Создайте имя плана. Не более 40 буквенно-цифровых символов и дефисов. Например, demoAppServicePlan. Служба приложений имена планов должны быть уникальными в пределах группы ресурсов в подписке.
appServiceNamePrefix Создайте префикс для имени плана. Не более 47 буквенно-цифровых символов или дефисов. Например, demoApp. Во время развертывания префикс объединяется с уникальной строкой для создания имени, которое глобально уникально в Azure.
storageAccountNamePrefix Используйте только строчные буквы и цифры и не более 11 символов. Например, demostg1234. Во время развертывания префикс объединяется с уникальной строкой для создания имени глобально уникального в Azure.
storageAccountType Параметры : Premium_LRS, Standard_LRS и Standard_GRS.

Чтобы создать имя управляемой группы ресурсов, можно выполнить следующие команды.

$mrgprefix = 'mrg-sampleBicepManagedApplication-'
$mrgtimestamp = Get-Date -UFormat "%Y%m%d%H%M%S"
$mrgname = $mrgprefix + $mrgtimestamp
$mrgname

$mrgtimestamp Переменные $mrgprefix объединяются и хранятся в переменной$mrgname. Значение переменной находится в формате mrg-sampleBicepManagedApplication-20230512103059. Значение переменной $mrgname используется при развертывании управляемого приложения.

Развертывание управляемого приложения

Используйте Azure PowerShell или Azure CLI для создания группы ресурсов и развертывания управляемого приложения.

New-AzResourceGroup -Name bicepApplicationGroup -Location westus

$deployparms = @{
  ResourceGroupName = "bicepApplicationGroup"
  TemplateFile = "deployServiceCatalog.bicep"
  TemplateParameterFile = "deployServiceCatalog-parameters.bicepparam"
  Name = "deployServiceCatalogApp"
}

New-AzResourceGroupDeployment @deployparms

Переменная $deployparms использует splatting PowerShell для улучшения удобочитаемости значений параметров.

Развертывание может отобразить предупреждение Bicep linter о том, что managedResourceGroupId свойство ожидает идентификатор ресурса. Так как во время развертывания создается управляемая группа ресурсов, идентификатор ресурса недоступен для свойства.

Показать результаты

После развертывания управляемого приложения из каталога служб будут созданы две группы ресурсов. Одна группа ресурсов содержит управляемое приложение. Другая группа ресурсов содержит развернутые управляемые ресурсы. В этом примере Служба приложений, Служба приложений плана и учетной записи хранения.

Управляемое приложение

После завершения развертывания можно проверка состояние управляемого приложения.

Выполните следующую команду, чтобы проверка состояние управляемого приложения.

Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup

Разверните свойства, чтобы упростить чтение сведений Properties .

Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup | Select-Object -ExpandProperty Properties

Управляемые ресурсы

Ресурсы, развернутые в управляемой группе ресурсов, можно просмотреть.

Чтобы отобразить ресурсы управляемой группы ресурсов, выполните следующую команду. При создании параметров вы создали $mrgname переменную.

Get-AzResource -ResourceGroupName $mrgname

Отображение всех назначений ролей для управляемой группы ресурсов.

Get-AzRoleAssignment -ResourceGroupName $mrgname

Определение управляемого приложения, созданное в статьях краткого руководства, использовало группу с назначением роли владельца. Группу можно просмотреть с помощью следующей команды.

Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner

Вы также можете перечислить назначения запрета для управляемой группы ресурсов.

Get-AzDenyAssignment -ResourceGroupName $mrgname

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

Завершив работу с управляемым приложением, вы можете удалить группы ресурсов и удалить все созданные ресурсы. Например, вы создали группы ресурсов bicepApplicationGroup и управляемую группу ресурсов с префиксом mrg-bicepManagedApplication.

При удалении группы ресурсов bicepApplicationGroup, управляемого приложения, управляемой группы ресурсов и всех ресурсов Azure удаляются.

В командной строке вы убедитесь, что вы хотите удалить группу ресурсов.

Remove-AzResourceGroup -Name bicepApplicationGroup

Если вы хотите удалить определение управляемого приложения, удалите группы ресурсов, созданные с именем пакета служба хранилища Group и bicepDefinitionGroup.

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