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