Compartir vía


Inicio rápido: Usar Bicep para implementar una definición de aplicación administrada por Azure

En este inicio rápido se describe cómo usar Bicep para implementar una definición de aplicación administrada de Azure desde el catálogo de servicios. La definición del catálogo de servicios está disponible para los miembros de su organización.

Para implementar una definición de aplicación administrada desde su catálogo de servicios, realice las siguientes tareas:

  • Use Bicep para desarrollar una plantilla que implemente una definición de aplicación administrada.
  • Cree un archivo de parámetros para la implementación.
  • Implemente la definición de aplicación administrada desde el catálogo de servicios.

Prerrequisitos

Para completar las tareas de este artículo, necesitará lo siguiente:

Obtener la definición de la aplicación administrada

Para obtener la definición de la aplicación administrada con Azure PowerShell, ejecute los siguientes comandos.

En Visual Studio Code, abra un nuevo terminal de PowerShell e inicie sesión en su suscripción de Azure.

Connect-AzAccount

Este comando abrirá el explorador predeterminado y le solicitará iniciar sesión en Azure. Para obtener más información, vaya a Inicio de sesión con Azure PowerShell.

En Azure PowerShell, obtenga la definición de la aplicación administrada. En este ejemplo, use el nombre del grupo de recursos bicepDefinitionGroup que se creó cuando implementó la definición de aplicación administrada.

Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionGroup

Get-AzManagedApplicationDefinition enumera todas las definiciones disponibles del grupo de recursos especificado, como sampleBicepManagedApplication.

El siguiente comando analiza la salida para mostrar solo el nombre de definición y el nombre del grupo de recursos. Usará los nombres cuando implemente la aplicación administrada.

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

Creación del archivo de Bicep

Abra Visual Studio Code y cree un archivo denominado deployServiceCatalog.bicep. Copie y pegue el siguiente código en el archivo y guárdelo.

@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

@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
      }
    }
  }
}

Para más información sobre el tipo de recurso, vaya a Microsoft.Solutions/applications.

Creación del archivo de parámetros

Abra Visual Studio Code y cree un archivo de parámetros denominado deployServiceCatalog-parameters.bicepparam. Copie y pegue el siguiente código en el archivo y guárdelo.

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'

Debe proporcionar varios parámetros para implementar la aplicación administrada:

Parámetro Value
definitionName Nombre de la definición del catálogo de servicios. Este ejemplo usa sampleBicepManagedApplication.
definitionRG Nombre del grupo de recursos donde se almacena la definición. En este ejemplo se usa bicepDefinitionGroup.
managedAppName Nombre de la aplicación administrada implementada. En este ejemplo se usa sampleBicepManagedApp.
mrgName Nombre único del grupo de recursos administrado que contiene los recursos implementados de la aplicación. El grupo de recursos se crea al implementar la aplicación administrada. Para crear un nombre de grupo de recursos administrado, ejecute los comandos que siguen esta lista de parámetros y use el valor para reemplazar el $mrgname marcador de posición en el archivo de parámetros.
appServicePlanName Cree un nombre para el plan. Máximo de 40 caracteres alfanuméricos y guiones. Por ejemplo, demoAppServicePlan. Los nombres de plan de App Service deben ser únicos dentro de un grupo de recursos de la suscripción.
appServiceNamePrefix Cree un prefijo para el nombre del plan. Máximo de 47 caracteres alfanuméricos o guiones. Por ejemplo, demoApp. Durante la implementación, el prefijo se concatena con una cadena única para crear un nombre único globalmente en Azure.

Puede ejecutar los comandos siguientes para crear un nombre para el grupo de recursos administrado.

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

Las variables $mrgprefix y $mrgtimestamp se concatenan y almacenan en la variable $mrgname. El valor de la variable tiene el formato mrg-sampleBicepManagedApplication-20230512103059. Use el valor de variable $mrgname cuando implemente la aplicación administrada.

Implementación de la aplicación administrada

Use Azure PowerShell o la CLI de Azure para crear un grupo de recursos e implementar la aplicación administrada.

New-AzResourceGroup -Name bicepApplicationGroup -Location westus

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

New-AzResourceGroupDeployment @deployparms

La variable $deployparms usa la expansión de PowerShell para mejorar la legibilidad de los valores de parámetro.

La implementación podría mostrar una advertencia de linter de Bicep de que la propiedad managedResourceGroupId espera un identificador de recurso. Dado que el grupo de recursos administrado se crea durante la implementación, no hay un identificador de recurso disponible para la propiedad.

Vista de resultados

Una vez implementada la aplicación administrada del catálogo de servicios, tendrá dos nuevos grupos de recursos. Uno contiene la aplicación administrada El otro grupo de recursos contiene los recursos administrados que se han implementado. En este ejemplo, un App Service, un plan de App Service y una cuenta de almacenamiento.

Aplicación administrada

Una vez finalizada la implementación, puede comprobar el estado de la aplicación administrada.

Ejecute el comando siguiente para comprobar el estado de la aplicación administrada.

Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepApplicationGroup

Expanda las propiedades para facilitar la lectura de la información Properties.

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

Recursos administrados

Puede ver los recursos implementados en el grupo de recursos administrados.

Para mostrar los recursos del grupo de recursos administrados, ejecute el siguiente comando. Ha creado la variable $mrgname al crear los parámetros.

Get-AzResource -ResourceGroupName $mrgname

Para mostrar todas las asignaciones de roles para el grupo de recursos administrados.

Get-AzRoleAssignment -ResourceGroupName $mrgname

La definición de aplicación administrada que creó en los artículos de inicio rápido usó un grupo con la asignación de roles Propietario. Cree el grupo con el comando siguiente.

Get-AzRoleAssignment -ResourceGroupName $mrgname -RoleDefinitionName Owner

También puede enumerar las asignaciones de denegación para el grupo de recursos administrado.

Get-AzDenyAssignment -ResourceGroupName $mrgname

Limpieza de recursos

Cuando haya terminado con la aplicación administrada, podrá eliminar los grupos de recursos y eso eliminará todos los recursos creados. Por ejemplo, ha creado los grupos de recursos bicepApplicationGroup y un grupo de recursos gestionados con el prefijo mrg-bicepManagedApplication.

Al eliminar el grupo de recursos bicepApplicationGroup, se eliminan la aplicación gestionada, el grupo de recursos gestionados y todos los recursos de Azure.

El comando le pide que confirme que quiere quitar el grupo de recursos.

Remove-AzResourceGroup -Name bicepApplicationGroup

Si desea eliminar la definición de la aplicación gestionada, elimine los grupos de recursos que creó denominados packageStorageGroup y bicepDefinitionGroup.

Pasos siguientes