Funciones de archivo de Bicep
En este artículo se describen las funciones de Bicep para cargar contenido desde archivos externos.
loadFileAsBase64
loadFileAsBase64(filePath)
Carga el archivo como una cadena base64.
Espacio de nombres: sys.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
filePath | Sí | string | Ruta de acceso al archivo que se va a cargar. La ruta de acceso es relativa con respecto al archivo Bicep implementado. No puede incluir variables. |
Comentarios
Use esta función si tiene contenido binario que quiere incluir en la implementación. En lugar de codificar manualmente el archivo en una cadena base64 y agregarlo al archivo Bicep, cárguelo con esta función. El archivo se carga cuando el archivo Bicep se compila en una plantilla JSON. No se pueden usar variables en la ruta de acceso del archivo porque no se han resuelto al realizar la compilación en la plantilla. Durante la implementación, la plantilla JSON dispone del contenido del archivo como una cadena codificada de forma rígida.
Para esta función se necesita la versión 0.4.X o posterior de la CLI de Bicep.
El tamaño máximo permitido del archivo es de 96 Kb.
Valor devuelto
El archivo como una cadena base64.
loadJsonContent
loadJsonContent(filePath, [jsonPath], [encoding])
Carga el archivo JSON especificado como un objeto Any.
Espacio de nombres: sys.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
filePath | Sí | string | Ruta de acceso al archivo que se va a cargar. La ruta de acceso es relativa con respecto al archivo Bicep implementado. No puede incluir variables. |
jsonPath | No | string | Expresión JSONPath para especificar que solo se carga parte del archivo. |
encoding | No | string | Codificación del archivo. El valor predeterminado es utf-8 . Las opciones disponibles son: iso-8859-1 , us-ascii , utf-16 , utf-16BE o utf-8 . |
Comentarios
Use esta función cuando tenga contenido JSON o contenido JSON reducido que se almacene en un archivo independiente. En lugar de duplicar el contenido JSON del archivo Bicep, cárguelo con esta función. Puede cargar una parte de un archivo JSON especificando una ruta de acceso JSON. El archivo se carga cuando el archivo Bicep se compila en la plantilla JSON. No se pueden usar variables en la ruta de acceso del archivo porque no se han resuelto al realizar la compilación en la plantilla. Durante la implementación, la plantilla JSON dispone del contenido del archivo como una cadena codificada de forma rígida.
En VS Code, las propiedades del objeto cargado están disponibles en IntelliSense. Por ejemplo, puede crear un archivo con valores para compartirlo entre muchos archivos Bicep. En este artículo se muestra un ejemplo.
Para esta función se necesita la versión 0.7.X o posterior de la CLI de Bicep.
El tamaño máximo permitido del archivo es de 1 048 576 caracteres, incluidos los finales de línea.
Valor devuelto
El contenido del archivo como un objeto Any.
Ejemplos
En el ejemplo siguiente se crea un archivo JSON que contiene valores para un grupo de seguridad de red.
{
"description": "Allows SSH traffic",
"protocol": "Tcp",
"sourcePortRange": "*",
"destinationPortRange": "22",
"sourceAddressPrefix": "*",
"destinationAddressPrefix": "*",
"access": "Allow",
"priority": 100,
"direction": "Inbound"
}
Cargue ese archivo y conviértalo en un objeto JSON. Use el objeto para asignar valores al recurso.
param location string = resourceGroup().location
var nsgconfig = loadJsonContent('nsg-security-rules.json')
resource newNSG 'Microsoft.Network/networkSecurityGroups@2023-11-01' = {
name: 'example-nsg'
location: location
properties: {
securityRules: [
{
name: 'SSH'
properties: nsgconfig
}
]
}
}
Puede reutilizar el archivo de valores en otros archivos Bicep que implementen un grupo de seguridad de red.
loadYamlContent
loadYamlContent(filePath, [pathFilter], [encoding])
Carga el archivo YAML especificado como un objeto Any.
Espacio de nombres: sys.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
filePath | Sí | string | Ruta de acceso al archivo que se va a cargar. La ruta de acceso es relativa con respecto al archivo Bicep implementado. No puede incluir variables. |
pathFilter | No | string | El filtro de ruta de acceso es una expresión JSONPath para especificar que solo se carga parte del archivo. |
encoding | No | string | Codificación del archivo. El valor predeterminado es utf-8 . Las opciones disponibles son: iso-8859-1 , us-ascii , utf-16 , utf-16BE o utf-8 . |
Comentarios
Use esta función cuando tenga contenido YAML o contenido YAML reducido que se almacene en un archivo independiente. En lugar de duplicar el contenido del archivo YAML, cárguelo con esta función. Puede cargar una parte de un archivo YAML si especifica un filtro de ruta de acceso. El archivo se carga cuando el archivo Bicep se compila en la plantilla YAML. No se pueden usar variables en la ruta de acceso del archivo porque no se han resuelto al realizar la compilación en la plantilla. Durante la implementación, la plantilla YAML dispone del contenido del archivo como una cadena codificada de forma rígida.
En VS Code, las propiedades del objeto cargado están disponibles en IntelliSense. Por ejemplo, puede crear un archivo con valores para compartirlo entre muchos archivos Bicep. En este artículo se muestra un ejemplo.
Para esta función se necesita la versión 0.16.X o posterior de la CLI de Bicep.
El tamaño máximo permitido del archivo es de 1 048 576 caracteres, incluidos los finales de línea.
Valor devuelto
El contenido del archivo como un objeto Any.
Ejemplos
En el ejemplo siguiente se crea un archivo YAML que contiene valores para un grupo de seguridad de red.
description: "Allows SSH traffic"
protocol: "Tcp"
sourcePortRange: "*"
destinationPortRange: "22"
sourceAddressPrefix: "*"
destinationAddressPrefix: "*"
access: "Allow"
priority: 100
direction: "Inbound"
Cargue ese archivo y conviértalo en un objeto JSON. Use el objeto para asignar valores al recurso.
param location string = resourceGroup().location
var nsgconfig = loadYamlContent('nsg-security-rules.yaml')
resource newNSG 'Microsoft.Network/networkSecurityGroups@2023-11-01' = {
name: 'example-nsg'
location: location
properties: {
securityRules: [
{
name: 'SSH'
properties: nsgconfig
}
]
}
}
Puede reutilizar el archivo de valores en otros archivos Bicep que implementen un grupo de seguridad de red.
loadTextContent
loadTextContent(filePath, [encoding])
Carga el contenido del archivo especificado como una cadena.
Espacio de nombres: sys.
Parámetros
Parámetro | Obligatorio | Type | Descripción |
---|---|---|---|
filePath | Sí | string | Ruta de acceso al archivo que se va a cargar. La ruta de acceso es relativa con respecto al archivo Bicep implementado. No puede contener variables. |
encoding | No | string | Codificación del archivo. El valor predeterminado es utf-8 . Las opciones disponibles son: iso-8859-1 , us-ascii , utf-16 , utf-16BE o utf-8 . |
Comentarios
Use esta función si tiene contenido que se almacene en un archivo aparte. Puede cargar el contenido en lugar de duplicarlo en el archivo de Bicep. Por ejemplo, puede cargar un script de implementación desde un archivo. El archivo se carga cuando el archivo Bicep se compila en la plantilla JSON. No se pueden incluir variables en la ruta de acceso del archivo porque no se han resuelto al realizar la compilación en la plantilla. Durante la implementación, la plantilla JSON dispone del contenido del archivo como una cadena codificada de forma rígida.
Use la función loadJsonContent()
para cargar archivos JSON.
Para esta función se necesita la versión 0.4.X o posterior de la CLI de Bicep.
El tamaño máximo permitido del archivo es de 131 072 caracteres, incluidos los finales de línea.
Valor devuelto
Contenido del archivo como una cadena.
Ejemplos
En el ejemplo siguiente se carga un script desde un archivo y se usa para un script de implementación.
resource exampleScript 'Microsoft.Resources/deploymentScripts@2023-08-01' = {
name: 'exampleScript'
location: resourceGroup().location
kind: 'AzurePowerShell'
identity: {
type: 'UserAssigned'
userAssignedIdentities: {
'/subscriptions/{sub-id}/resourcegroups/{rg-name}/providers/Microsoft.ManagedIdentity/userAssignedIdentities/{id-name}': {}
}
}
properties: {
azPowerShellVersion: '8.3'
scriptContent: loadTextContent('myscript.ps1')
retentionInterval: 'P1D'
}
}
Pasos siguientes
- Puede encontrar una descripción de las secciones de un archivo de Bicep en Nociones sobre la estructura y la sintaxis de los archivos de Bicep.