Creación de un archivo de parámetros para la implementación de Bicep
En este artículo se muestra cómo crear un archivo de parámetros, que puede usar en lugar de pasar parámetros como valores insertados en el script. Puede usar un archivo de parámetros de Bicep con la extensión de archivo .bicepparam
o un archivo de parámetros JSON que contenga el valor del parámetro.
Nota:
El archivo de parámetros de Bicep solo se admite en la CLI de Bicep versión 0.18.4 o posterior, la CLI de Azure versión 2.47.0 o posterior y Azure PowerShell versión 9.7.1 o posterior.
Un único archivo de Bicep puede tener varios archivos de parámetros de Bicep asociados. Sin embargo, cada archivo de parámetros de Bicep está diseñado para un archivo de Bicep determinado. Puede establecer esta relación aplicando la instrucción using
dentro del archivo de parámetros de Bicep.
Puede compilar archivos de parámetros de Bicep en archivos de parámetros JSON que puede implementar mediante un archivo de Bicep. Para obtener más información, vea build-params
. También puede descompilar un archivo de parámetros JSON en un archivo de parámetros de Bicep. Para obtener más información, vea decompile-params
.
Archivo de parámetros
Un archivo de parámetros usa el siguiente formato:
using '<path>/<file-name>.bicep'
param <first-parameter-name> = <first-value>
param <second-parameter-name> = <second-value>
Puede aplicar la instrucción using
mediante un archivo de Bicep, plantillas JSON de Azure Resource Manager, módulos de Bicep y especificaciones de plantilla. Por ejemplo:
using './main.bicep'
...
using './azuredeploy.json'
...
using 'br/public:avm/res/storage/storage-account:0.9.0'
...
using 'br:myacr.azurecr.io/bicep/modules/storage:v1'
...
using 'ts:00000000-0000-0000-0000-000000000000/myResourceGroup/storageSpec:1.0'
...
Para obtener más información, consulte Instrucción using.
Puede usar expresiones con el valor predeterminado. Por ejemplo:
using 'main.bicep'
param storageName = toLower('MyStorageAccount')
param intValue = 2 + 2
Puede hacer referencia a variables de entorno como valores de parámetro. Por ejemplo:
using './main.bicep'
param intFromEnvironmentVariables = int(readEnvironmentVariable('intEnvVariableName'))
Puede definir y usar variables. Debe usar la versión 0.21.X o posterior de la CLI de Bicep para usar variables en archivos .bicepparam
. Consulte los siguientes ejemplos:
using './main.bicep'
var storagePrefix = 'myStorage'
param primaryStorageName = '${storagePrefix}Primary'
param secondaryStorageName = '${storagePrefix}Secondary'
using './main.bicep'
var testSettings = {
instanceSize: 'Small'
instanceCount: 1
}
var prodSettings = {
instanceSize: 'Large'
instanceCount: 4
}
param environmentSettings = {
test: testSettings
prod: prodSettings
}
Nota:
Un archivo de parámetros guarda los valores de parámetro como texto sin formato. Por motivos de seguridad, no se recomienda usar este enfoque con valores confidenciales, como contraseñas.
Si necesita pasar un parámetro con un valor confidencial, debe mantener el valor en un almacén de claves. En lugar de agregar un valor confidencial en el archivo de parámetros, use la función getSecret
para recuperarlo. Para obtener más información, consulte Uso de Azure Key Vault para pasar un secreto como un parámetro durante la implementación de Bicep.
Formatos de tipo de parámetro
En el ejemplo siguiente se muestran los formatos de distintos tipos de parámetros: cadena, entero, booleano, matriz y objeto.
using './main.bicep'
param exampleString = 'test string'
param exampleInt = 2 + 2
param exampleBool = true
param exampleArray = [
'value 1'
'value 2'
]
param exampleObject = {
property1: 'value 1'
property2: 'value 2'
}
Nombre de archivo
La extensión de archivo para un archivo de parámetros de Bicep es .bicepparam
.
Para realizar la implementación en varios entornos, cree más de un archivo de parámetros. Al usar varios archivos de parámetros, etiquételos según su uso. Por ejemplo, para implementar recursos, use la etiqueta main.dev.bicepparam para el desarrollo y la etiqueta main.prod.bicepparam para producción.
Definición de los valores de parámetro
Para determinar cómo definir los nombres y valores de los parámetros, abra el archivo de Bicep. Examine la sección parameters del archivo de Bicep. En los ejemplos siguientes, se muestran los parámetros del archivo de Bicep llamado main.bicep
:
@maxLength(11)
param storagePrefix string
@allowed([
'Standard_LRS'
'Standard_GRS'
'Standard_ZRS'
'Premium_LRS'
])
param storageAccountType string = 'Standard_LRS'
En el archivo de parámetros, busque el nombre de cada parámetro. Los nombres de los parámetros del archivo de parámetros deben coincidir con los nombres de los parámetros del archivo Bicep.
using 'main.bicep'
param storagePrefix
param storageAccountType
La instrucción using
vincula el archivo de parámetros de Bicep a un archivo de Bicep. Para obtener más información, consulte Instrucción using.
Al escribir la palabra clave param
en Visual Studio Code, se le pedirán los parámetros disponibles y sus descripciones del archivo de Bicep vinculado.
Al mantener el puntero sobre un nombre param
, puede ver el tipo de datos y la descripción del parámetro.
Revise el tipo de parámetro, ya que los tipos de parámetro del archivo de parámetros deben usar los mismos tipos que el archivo de Bicep. En este ejemplo, ambos tipos de parámetros son cadenas:
using 'main.bicep'
param storagePrefix = ''
param storageAccountType = ''
Compruebe el archivo de Bicep para ver los parámetros que incluyen un valor predeterminado. Si un parámetro tiene un valor predeterminado, puede proporcionar un valor en el archivo de parámetros, pero no es necesario. El valor del archivo de parámetros reemplaza al valor predeterminado del archivo Bicep.
using 'main.bicep'
param storagePrefix = '' // This value must be provided.
param storageAccountType = '' // This value is optional. Bicep uses default value if not provided.
Para ver si hay restricciones, como una longitud máxima, compruebe los valores permitidos del archivo de Bicep. Los valores permitidos especifican el intervalo de valores que puede proporcionar para un parámetro. En este ejemplo, storagePrefix
puede tener un máximo de 11 caracteres y storageAccountType
debe especificar un valor permitido.
using 'main.bicep'
param storagePrefix = 'storage'
param storageAccountType = 'Standard_ZRS'
Generación del archivo de parámetros
Puede crear un archivo de parámetros mediante Visual Studio Code o la CLI de Bicep. Ambas herramientas permiten usar un archivo de Bicep para generar un archivo de parámetros. Consulte Generar Archivo de parámetros para el método de Visual Studio Code y Generar archivo de parámetros para el método de la CLI de Bicep.
Compilar un archivo de parámetros de Bicep
Desde la CLI de Bicep, puede compilar un archivo de parámetros de Bicep en un archivo de parámetros JSON. Para más información, consulte Compilación de archivos de parámetros.
Implementación de un archivo Bicep con un archivo de parámetros
CLI de Azure
Desde la CLI de Azure, puede pasar un archivo de parámetros con la implementación del archivo de Bicep.
Puede implementar un archivo de Bicep mediante un archivo de parámetros de Bicep con CLI de Azure versión 2.53.0 o posterior y CLI de Bicep versión 0.22.X o posterior. Con la instrucción using
que hay dentro del archivo de parámetros de Bicep, no es necesario proporcionar el modificador --template-file
al especificar un archivo de parámetros de Bicep para el modificador --parameters
.
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam
Puede usar parámetros en línea y un archivo de parámetros de ubicación en la misma operación de implementación. Por ejemplo:
az deployment group create \
--name ExampleDeployment \
--resource-group ExampleGroup \
--parameters storage.bicepparam \
--parameters storageAccountType=Standard_LRS
Para obtener más información, consulte Implementación de archivos de Bicep mediante la CLI de Azure.
Azure PowerShell
Desde Azure PowerShell, pase un archivo de parámetros local mediante el parámetro TemplateParameterFile
.
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam
Puede usar parámetros en línea y un archivo de parámetros de ubicación en la misma operación de implementación. Por ejemplo:
New-AzResourceGroupDeployment `
-Name ExampleDeployment `
-ResourceGroupName ExampleResourceGroup `
-TemplateFile C:\MyTemplates\storage.bicep `
-TemplateParameterFile C:\MyTemplates\storage.bicepparam `
-storageAccountType Standard_LRS
Para obtener más información, consulte Implementación de archivos de Bicep mediante Azure PowerShell. Para implementar archivos .bicep
, necesita Azure PowerShell versión 5.6.0 o posterior.
Prioridad de parámetros
Puede usar parámetros en línea y un archivo de parámetros local en la misma operación de implementación. Por ejemplo, puede especificar algunos valores en el archivo de parámetros local y agregar otros valores en línea durante la implementación. Si proporciona valores para un parámetro en el archivo de parámetros local y en línea, el valor en línea tiene prioridad.
Aunque actualmente no se admiten archivos de parámetros de Bicep externos, puede usar un archivo de parámetros JSON externo proporcionando el identificador URI del archivo. Cuando se usa un archivo de parámetros externos, proporcione todos los valores de parámetro en el archivo externo. Cuando se usa un archivo externo, no se pueden pasar otros valores insertados o desde un archivo local, y se omiten todos los parámetros insertados.
Conflictos de nombres de parámetro
Si el archivo de Bicep incluye un parámetro con el mismo nombre que uno de los parámetros del comando de Azure PowerShell, Azure PowerShell presenta el parámetro del archivo de Bicep con el postfijo FromTemplate
. Por ejemplo, si un parámetro denominado ResourceGroupName
en el archivo de Bicep entra en conflicto con el parámetro ResourceGroupName
del cmdlet New-AzResourceGroupDeployment
, se le pedirá que proporcione un valor para ResourceGroupNameFromTemplate
. Para evitar esta confusión, use nombres de parámetros que no se usan para los comandos de implementación.
Contenido relacionado
- Para más información sobre cómo definir parámetros en un archivo Bicep, vea Parámetros en Bicep.
- Para obtener los valores confidenciales, vea Uso de Azure Key Vault para pasar valores de parámetro seguros durante la implementación de Bicep.