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:
- Complete el inicio rápido para usar Bicep para crear y publicar una definición de aplicación administrada en su catálogo de servicios.
- Una cuenta de Azure con una suscripción activa. Antes de comenzar, si no tiene una cuenta, cree una gratuita.
- Visual Studio Code con la extensión Herramientas de Azure Resource Manager más reciente. En el caso de los archivos de Bicep, instale la extensión de Bicep para Visual Studio Code.
- Instale la versión más reciente de Azure PowerShell o la CLI de Azure.
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 bicepDefinitionRG que se creó cuando implementó la definición de aplicación administrada.
Get-AzManagedApplicationDefinition -ResourceGroupName bicepDefinitionRG
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 bicepDefinitionRG | 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
@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
}
}
}
}
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.json. Copie y pegue el siguiente código en el archivo y guárdelo.
{
"$schema": "https://schema.management.azure.com/schemas/2019-04-01/deploymentParameters.json#",
"contentVersion": "1.0.0.0",
"parameters": {
"definitionName": {
"value": "sampleBicepManagedApplication"
},
"definitionRG": {
"value": "bicepDefinitionRG"
},
"managedAppName": {
"value": "sampleBicepManagedApp"
},
"mrgName": {
"value": "<placeholder for managed resource group name>"
},
"appServicePlanName": {
"value": "demoAppServicePlan"
},
"appServiceNamePrefix": {
"value": "demoApp"
},
"storageAccountNamePrefix": {
"value": "demostg1234"
},
"storageAccountType": {
"value": "Standard_LRS"
}
}
}
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 bicepDefinitionRG. |
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, puede ejecutar los comandos que siguen esta lista 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. |
storageAccountNamePrefix |
Use solo letras minúsculas y números y un máximo de 11 caracteres. Por ejemplo, demostg1234. Durante la implementación, el prefijo se concatena con una cadena única para crear un nombre único globalmente en Azure. |
storageAccountType |
Las demás opciones son Premium_LRS, Standard_LRS y Standard_GRS. |
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 bicepAppRG -Location westus3
New-AzResourceGroupDeployment `
-ResourceGroupName bicepAppRG `
-TemplateFile deployServiceCatalog.bicep `
-TemplateParameterFile deployServiceCatalog.parameters.json
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 bicepAppRG
Expanda las propiedades para facilitar la lectura de la información Properties
.
Get-AzManagedApplication -Name sampleBicepManagedApp -ResourceGroupName bicepAppRG | 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 bicepAppRG y un grupo de recursos administrados con el prefijo mrg-bicepManagedApplication.
Cuando eliminas el grupo de recursos bicepAppRG, se eliminan la aplicación administrada, el grupo de recursos administrado y todos los recursos de Azure.
El comando le pide que confirme que quiere quitar el grupo de recursos.
Remove-AzResourceGroup -Name bicepAppRG
Si quiere eliminar la definición de la aplicación administrada, elimine los grupos de recursos que creó denominados packageStorageRG y bicepDefinitionRG.
Pasos siguientes
- Para obtener información sobre cómo crear y publicar los archivos de definición de una aplicación administrada usando Azure PowerShell, la CLI de Azure o el portal, vaya a Inicio rápido: Crear y publicar una definición de aplicación administrada de Azure.
- Para usar tu propio almacenamiento para crear y publicar los archivos de definición para una aplicación administrada, ve a Inicio rápido: trae tu propio almacenamiento para crear y publicar una definición de aplicación administrada de Azure.