Funzioni file per Bicep

Questo articolo descrive le funzioni Bicep per il caricamento di contenuto da file esterni.

loadFileAsBase64

loadFileAsBase64(filePath)

Carica il file come stringa base64.

Spazio dei nomi: sys.

Parametri

Parametro Richiesto Type Descrizione
filePath string Percorso del file da caricare. Il percorso è relativo al file Bicep distribuito. Non può includere variabili.

Osservazioni:

Usare questa funzione quando si dispone di contenuto binario da includere nella distribuzione. Anziché codificare manualmente il file in una stringa base64 e aggiungerlo al file Bicep, caricare il file con questa funzione. Il file viene caricato quando il file Bicep viene compilato in un modello JSON. Non è possibile usare variabili nel percorso del file perché non sono state risolte durante la compilazione nel modello. Durante la distribuzione, il modello JSON contiene il contenuto del file come stringa hardcoded.

Questa funzione richiede l'interfaccia della riga di comando di Bicep versione 0.4.X o successiva.

Le dimensioni massime consentite del file sono di 96 Kb.

Valore restituito

File come stringa base64.

loadJsonContent

loadJsonContent(filePath, [jsonPath], [encoding])

Carica il file JSON specificato come oggetto Any.

Spazio dei nomi: sys.

Parametri

Parametro Richiesto Type Descrizione
filePath string Percorso del file da caricare. Il percorso è relativo al file Bicep distribuito. Non può includere variabili.
jsonPath No string Espressione JSONPath per specificare che viene caricata solo parte del file.
codifica No string Il file da codificare. Il valore predefinito è utf-8. Le opzioni disponibili sono: iso-8859-1, us-ascii, utf-16, utf-16BE, o utf-8.

Osservazioni:

Usare questa funzione quando si dispone di contenuto JSON o di contenuto JSON minimizzato archiviato in un file separato. Anziché duplicare il contenuto JSON nel file Bicep, caricare il contenuto con questa funzione. È possibile caricare una parte di un file JSON specificando un percorso JSON. Il file viene caricato quando il file Bicep viene compilato nel modello JSON. Non è possibile includere variabili nel percorso del file perché non sono state risolte durante la compilazione nel modello. Durante la distribuzione, il modello JSON contiene il contenuto del file come stringa hardcoded.

In VS Code le proprietà dell'oggetto caricato sono disponibili intellisense. Ad esempio, è possibile creare un file con valori da condividere tra molti file Bicep. Un esempio è illustrato in questo articolo.

Questa funzione richiede l'interfaccia della riga di comando di Bicep versione 0.7.X o successiva.

La dimensione massima consentita del file è di 1.048.576 caratteri, incluse le terminazioni di riga.

Valore restituito

Contenuto del file come oggetto Any.

Esempi

L'esempio seguente crea un file JSON che contiene valori per un gruppo di sicurezza di rete.

{
  "description": "Allows SSH traffic",
  "protocol": "Tcp",
  "sourcePortRange": "*",
  "destinationPortRange": "22",
  "sourceAddressPrefix": "*",
  "destinationAddressPrefix": "*",
  "access": "Allow",
  "priority": 100,
  "direction": "Inbound"
}

Il file viene caricato e convertito in un oggetto JSON. Usare l'oggetto per assegnare valori alla risorsa.

param location string = resourceGroup().location

var nsgconfig = loadJsonContent('nsg-security-rules.json')

resource newNSG 'Microsoft.Network/networkSecurityGroups@2021-02-01' = {
  name: 'example-nsg'
  location: location
  properties: {
    securityRules: [
      {
        name: 'SSH'
        properties: nsgconfig
      }
    ]
  }
}

È possibile riutilizzare il file di valori in altri file Bicep che distribuiscono un gruppo di sicurezza di rete.

loadYamlContent

loadYamlContent(filePath, [pathFilter], [encoding])

Carica il file YAML specificato come oggetto Any.

Spazio dei nomi: sys.

Parametri

Parametro Richiesto Type Descrizione
filePath string Percorso del file da caricare. Il percorso è relativo al file Bicep distribuito. Non può includere variabili.
pathFilter No string Il filtro di percorso è un'espressione JSONPath per specificare che viene caricata solo parte del file.
codifica No string Il file da codificare. Il valore predefinito è utf-8. Le opzioni disponibili sono: iso-8859-1, us-ascii, utf-16, utf-16BE, o utf-8.

Osservazioni:

Usare questa funzione quando si dispone di contenuto YAML o contenuto YAML minimizzato archiviato in un file separato. Anziché duplicare il contenuto YAML nel file Bicep, caricare il contenuto con questa funzione. È possibile caricare una parte di un file YAML specificando un filtro di percorso. Il file viene caricato quando il file Bicep viene compilato nel modello YAML. Non è possibile includere variabili nel percorso del file perché non sono state risolte durante la compilazione nel modello. Durante la distribuzione, il modello YAML contiene il contenuto del file come stringa inserita direttamente.

In VS Code le proprietà dell'oggetto caricato sono disponibili intellisense. Ad esempio, è possibile creare un file con valori da condividere tra molti file Bicep. Un esempio è illustrato in questo articolo.

Questa funzione richiede l'interfaccia della riga di comando di Bicep versione 0.16.X o successiva.

La dimensione massima consentita del file è di 1.048.576 caratteri, incluse le terminazioni di riga.

Valore restituito

Contenuto del file come oggetto Any.

Esempi

Nell'esempio seguente viene creato un file YAML contenente valori per un gruppo di sicurezza di rete.

description: "Allows SSH traffic"
protocol: "Tcp"
sourcePortRange: "*"
destinationPortRange: "22"
sourceAddressPrefix: "*"
destinationAddressPrefix: "*"
access: "Allow"
priority: 100
direction: "Inbound"

Il file viene caricato e convertito in un oggetto JSON. Usare l'oggetto per assegnare valori alla risorsa.

param location string = resourceGroup().location

var nsgconfig = loadYamlContent('nsg-security-rules.yaml')

resource newNSG 'Microsoft.Network/networkSecurityGroups@2021-02-01' = {
  name: 'example-nsg'
  location: location
  properties: {
    securityRules: [
      {
        name: 'SSH'
        properties: nsgconfig
      }
    ]
  }
}

È possibile riutilizzare il file di valori in altri file Bicep che distribuiscono un gruppo di sicurezza di rete.

loadTextContent

loadTextContent(filePath, [encoding])

Carica il contenuto del file specificato come stringa.

Spazio dei nomi: sys.

Parametri

Parametro Richiesto Type Descrizione
filePath string Percorso del file da caricare. Il percorso è relativo al file Bicep distribuito. Non può contenere variabili.
codifica No string Il file da codificare. Il valore predefinito è utf-8. Le opzioni disponibili sono: iso-8859-1, us-ascii, utf-16, utf-16BE o utf-8.

Osservazioni:

Usare questa funzione quando si dispone di contenuto archiviato in un file separato. È possibile caricare il contenuto anziché duplicarlo nel file Bicep. Ad esempio, è possibile caricare uno script di distribuzione da un file. Il file viene caricato quando il file Bicep viene compilato nel modello JSON. Non è possibile includere variabili nel percorso del file perché non sono state risolte durante la compilazione nel modello. Durante la distribuzione, il modello JSON contiene il contenuto del file come stringa hardcoded.

Usare la loadJsonContent() funzione per caricare i file JSON.

Questa funzione richiede l'interfaccia della riga di comando di Bicep versione 0.4.X o successiva.

La dimensione massima consentita del file è di 131.072 caratteri, incluse le terminazioni di riga.

Valore restituito

Contenuto del file sotto forma di stringa.

Esempi

L'esempio seguente carica uno script da un file e lo usa per uno script di distribuzione.

resource exampleScript 'Microsoft.Resources/deploymentScripts@2020-10-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'
  }
}

Passaggi successivi