Freigeben über


Dateifunktionen für Bicep

In diesem Artikel werden die Bicep-Funktionen zum Laden von Inhalten aus externen Dateien beschrieben.

loadDirectoryFileInfo

loadDirectoryFileInfo(directoryPath, [searchPattern])

Lädt grundlegende Informationen zu den Dateien eines Verzeichnisses als Bicep-Objekt. Das Laden der Datei erfolgt während der Kompilierung, nicht zur Laufzeit.

Namespace: sys.

Die Parameter

Parameter Erforderlich Typ Description
directoryPath Yes Schnur Der Pfad ist relativ zur Bicep-Datei, die diese Funktion aufruft. Sie kann Variablen verwenden, vorausgesetzt, sie sind Kompilierungszeitkonstanten, können aber keine Parameter verwenden.
searchPattern Nein Schnur Das Suchmuster, das beim Laden von Dateien verwendet werden soll. Dazu können Auch Wildcards gehören.

Rückgabewert

Ein Array von Objekten, die jeweils eine Datei im Verzeichnis darstellen. Jedes Objekt enthält die folgenden Eigenschaften:

Eigentum Typ Description
Basename Schnur Der Name der Datei.
Erweiterung Schnur Die Dateierweiterung.
relativePath (relativer Pfad) Schnur Der relative Pfad zur aktuellen Vorlage.

Examples

Im folgenden Beispiel werden die Dateiinformationen für alle Bicep-Dateien im ./modules/ Verzeichnis geladen.

var dirFileInfo = loadDirectoryFileInfo('./modules/', '*.bicep')

output dirFileInfoOutput object[] = dirFileInfo

Der Ordner enthält nur eine Datei mit dem Namen appService.bicep. Die Ausgabe lautet wie folgt:

[{"relativePath":"modules/appService.bicep","baseName":"appService.bicep","extension":".bicep"}]

loadFileAsBase64

loadFileAsBase64(filePath)

Lädt die Datei als base64-Zeichenfolge.

Namespace: sys.

Die Parameter

Parameter Erforderlich Typ Description
filePath Yes Schnur Der Pfad zur zu ladenden Datei. Der Pfad ist relativ zur bereitgestellten Bicep-Datei. Sie kann keine Variablen enthalten.

Bemerkungen

Verwenden Sie diese Funktion, wenn Sie binäre Inhalte haben, die Sie in die Bereitstellung aufnehmen möchten. Anstatt die Datei manuell in eine Base64-Zeichenfolge zu codieren und sie ihrer Bicep-Datei hinzuzufügen, laden Sie die Datei mit dieser Funktion. Die Datei wird geladen, wenn die Bicep-Datei in eine JSON-Vorlage kompiliert wird. Variablen können nicht im Dateipfad verwendet werden, da sie beim Kompilieren der Vorlage nicht aufgelöst wurden. Während der Bereitstellung enthält die JSON-Vorlage den Inhalt der Datei als hartcodierte Zeichenfolge.

Für diese Funktion ist Bicep CLI Version 0.4.X oder höher erforderlich.

Die maximal zulässige Größe der Datei beträgt 96 KB.

Rückgabewert

Die Datei als base64-Zeichenfolge.

loadJsonContent

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

Lädt die angegebene JSON-Datei als Any-Objekt.

Namespace: sys.

Die Parameter

Parameter Erforderlich Typ Description
filePath Yes Schnur Der Pfad zur zu ladenden Datei. Der Pfad ist relativ zur bereitgestellten Bicep-Datei. Sie kann keine Variablen enthalten.
jsonPath Nein Schnur JSONPath-Ausdruck, um anzugeben, dass nur ein Teil der Datei geladen wird.
encoding Nein Schnur Die Dateicodierung. Der Standardwert ist utf-8. Die verfügbaren Optionen sind: iso-8859-1, , us-ascii, utf-16, , utf-16BEoder utf-8.

Bemerkungen

Verwenden Sie diese Funktion, wenn Sie JSON-Inhalte oder minimierte JSON-Inhalte haben, die in einer separaten Datei gespeichert sind. Anstatt den JSON-Inhalt in Ihrer Bicep-Datei zu duplizieren, laden Sie den Inhalt mit dieser Funktion. Sie können einen Teil einer JSON-Datei laden, indem Sie einen JSON-Pfad angeben. Die Datei wird geladen, wenn die Bicep-Datei in die JSON-Vorlage kompiliert wird. Variablen können nicht im Dateipfad eingeschlossen werden, da sie beim Kompilieren der Vorlage nicht aufgelöst wurden. Während der Bereitstellung enthält die JSON-Vorlage den Inhalt der Datei als hartcodierte Zeichenfolge.

In VS Code sind die Eigenschaften des geladenen Objekts intellisense verfügbar. Sie können z. B. eine Datei mit Werten erstellen, die für viele Bicep-Dateien freigegeben werden sollen. Ein Beispiel ist in diesem Artikel dargestellt.

Für diese Funktion ist Bicep CLI Version 0.7.X oder höher erforderlich.

Die maximale zulässige Größe der Datei beträgt 1.048.576 Zeichen, einschließlich Zeilenenden.

Rückgabewert

Der Inhalt der Datei als Any-Objekt.

Examples

Im folgenden Beispiel wird eine JSON-Datei erstellt, die Werte für eine Netzwerksicherheitsgruppe enthält.

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

Sie laden diese Datei und konvertieren sie in ein JSON-Objekt. Sie verwenden das Objekt, um der Ressource Werte zuzuweisen.

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

Sie können die Datei von Werten in anderen Bicep-Dateien wiederverwenden, die eine Netzwerksicherheitsgruppe bereitstellen.

loadYamlContent

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

Lädt die angegebene YAML-Datei als Any-Objekt.

Namespace: sys.

Die Parameter

Parameter Erforderlich Typ Description
filePath Yes Schnur Der Pfad zur zu ladenden Datei. Der Pfad ist relativ zur bereitgestellten Bicep-Datei. Sie kann keine Variablen enthalten.
pathFilter Nein Schnur Der Pfadfilter ist ein JSONPath-Ausdruck, der angibt, dass nur ein Teil der Datei geladen wird.
encoding Nein Schnur Die Dateicodierung. Der Standardwert ist utf-8. Die verfügbaren Optionen sind: iso-8859-1, , us-ascii, utf-16, , utf-16BEoder utf-8.

Bemerkungen

Verwenden Sie diese Funktion, wenn Sie YAML-Inhalte oder minimierte YAML-Inhalte haben, die in einer separaten Datei gespeichert sind. Anstatt den YAML-Inhalt in Ihrer Bicep-Datei zu duplizieren, laden Sie den Inhalt mit dieser Funktion. Sie können einen Teil einer YAML-Datei laden, indem Sie einen Pfadfilter angeben. Die Datei wird geladen, wenn die Bicep-Datei in die YAML-Vorlage kompiliert wird. Variablen können nicht im Dateipfad eingeschlossen werden, da sie beim Kompilieren der Vorlage nicht aufgelöst wurden. Während der Bereitstellung enthält die YAML-Vorlage den Inhalt der Datei als hartcodierte Zeichenfolge.

In VS Code sind die Eigenschaften des geladenen Objekts intellisense verfügbar. Sie können z. B. eine Datei mit Werten erstellen, die für viele Bicep-Dateien freigegeben werden sollen. Ein Beispiel ist in diesem Artikel dargestellt.

Für diese Funktion ist Bicep CLI Version 0.16.X oder höher erforderlich.

Die maximale zulässige Größe der Datei beträgt 1.048.576 Zeichen, einschließlich Zeilenenden.

Rückgabewert

Der Inhalt der Datei als Any-Objekt.

Examples

Im folgenden Beispiel wird eine YAML-Datei erstellt, die Werte für eine Netzwerksicherheitsgruppe enthält.

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

Sie laden diese Datei und konvertieren sie in ein JSON-Objekt. Sie verwenden das Objekt, um der Ressource Werte zuzuweisen.

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

Sie können die Datei von Werten in anderen Bicep-Dateien wiederverwenden, die eine Netzwerksicherheitsgruppe bereitstellen.

loadTextContent

loadTextContent(filePath, [encoding])

Lädt den Inhalt der angegebenen Datei als Zeichenfolge.

Namespace: sys.

Die Parameter

Parameter Erforderlich Typ Description
filePath Yes Schnur Der Pfad zur zu ladenden Datei. Der Pfad ist relativ zur bereitgestellten Bicep-Datei. Es kann keine Variablen enthalten.
encoding Nein Schnur Die Dateicodierung. Der Standardwert ist utf-8. Die verfügbaren Optionen sind: iso-8859-1, , us-ascii, utf-16, , utf-16BEoder utf-8.

Bemerkungen

Verwenden Sie diese Funktion, wenn Sie Inhalte haben, die in einer separaten Datei gespeichert sind. Sie können den Inhalt laden, anstatt ihn in Ihrer Bicep-Datei zu duplizieren. Sie können z. B. ein Bereitstellungsskript aus einer Datei laden. Die Datei wird geladen, wenn die Bicep-Datei in die JSON-Vorlage kompiliert wird. Sie können keine Variablen im Dateipfad einfügen, da sie beim Kompilieren der Vorlage nicht aufgelöst wurden. Während der Bereitstellung enthält die JSON-Vorlage den Inhalt der Datei als hartcodierte Zeichenfolge.

Verwenden Sie die loadJsonContent() Funktion, um JSON-Dateien zu laden.

Für diese Funktion ist Bicep CLI Version 0.4.X oder höher erforderlich.

Die maximale zulässige Größe der Datei beträgt 131.072 Zeichen, einschließlich Zeilenenden.

Rückgabewert

Der Inhalt der Datei als Zeichenfolge.

Examples

Im folgenden Beispiel wird ein Skript aus einer Datei geladen und für ein Bereitstellungsskript verwendet.

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: '14.0'
    scriptContent: loadTextContent('myscript.ps1')
    retentionInterval: 'P1D'
  }
}

Nächste Schritte