Dateifunktionen für Bicep

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

loadFileAsBase64

loadFileAsBase64(filePath)

Lädt die Datei als Base64-Zeichenfolge.

Namespace: sys.

Parameter

Parameter Erforderlich Type BESCHREIBUNG
filePath Ja Zeichenfolge Der Pfad zur Datei, die geladen werden soll. Der Pfad ist relativ zur bereitgestellten Bicep-Datei. Er kann keine Variablen enthalten.

Bemerkungen

Verwenden Sie diese Funktion, wenn Sie über binären Inhalt verfügen, den Sie in die Bereitstellung einbeziehen möchten. Anstatt die Datei manuell in eine Base64-Zeichenfolge zu codieren und Ihrer Bicep-Datei hinzufügen zu müssen, laden Sie die Datei mit dieser Funktion. Die Datei wird geladen, wenn die Bicep-Datei in eine JSON-Vorlage kompiliert wird. Sie können keine Variablen im Dateipfad verwenden, da sie bei der Kompilierung in die Vorlage nicht aufgelöst wurden. Während der Bereitstellung enthält die JSON-Vorlage den Inhalt der Datei als hartcodierte Zeichenfolge.

Diese Funktion erfordert Bicep CLI Version 0.4.X oder höher.

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 ein „Beliebiges“ (Any) Objekt.

Namespace: sys.

Parameter

Parameter Erforderlich Type BESCHREIBUNG
filePath Ja Zeichenfolge Der Pfad zur Datei, die geladen werden soll. Der Pfad ist relativ zur bereitgestellten Bicep-Datei. Er kann keine Variablen enthalten.
jsonPath Nein Zeichenfolge Ein JSONPath-Ausdruck, um anzugeben, dass nur ein Teil der Datei geladen wird.
encoding Nein Zeichenfolge Die Codierung der Datei. Standardwert: utf-8. Verfügbare Optionen: iso-8859-1, us-ascii, utf-16, utf-16BE oder utf-8.

Bemerkungen

Verwenden Sie diese Funktion, wenn Sie über JSON-Inhalt oder minimierte Inhalte verfügen, die eher in einer separaten Datei gespeichert sind. Laden Sie den JSON-Inhalt mit dieser Funktion, anstatt den Inhalt in Ihrer Bicep-Datei zu duplizieren. 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. Sie können keine Variablen in den Dateipfad aufnehmen, da sie bei der Kompilierung in die 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 in IntelliSense verfügbar. Beispielsweise können Sie eine Datei mit Werten erstellen, die für viele Bicep-Dateien freigegeben werden. Ein Beispiel finden Sie in diesem Artikel.

Diese Funktion erfordert Bicep CLI Version 0.7.X oder höher.

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

Rückgabewert

Der Inhalt der Datei als (beliebiges) „Any“-Objekt.

Beispiele

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 entsprechende Werte zuzuweisen.

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

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

loadYamlContent

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

Lädt die angegebene YAML-Datei als ein „Beliebiges“ (Any) Objekt.

Namespace: sys.

Parameter

Parameter Erforderlich Type BESCHREIBUNG
filePath Ja Zeichenfolge Der Pfad zur Datei, die geladen werden soll. Der Pfad ist relativ zur bereitgestellten Bicep-Datei. Er kann keine Variablen enthalten.
pathFilter Nein Zeichenfolge Der Pfadfilter ist ein JSONPath-Ausdruck, um anzugeben, dass nur ein Teil der Datei geladen wird.
encoding Nein Zeichenfolge Die Codierung der Datei. Standardwert: utf-8. Verfügbare Optionen: iso-8859-1, us-ascii, utf-16, utf-16BE oder utf-8.

Bemerkungen

Verwenden Sie diese Funktion, wenn Sie über YAML-Inhalt oder minimierte YAML-Inhalte verfügen, die eher in einer separaten Datei gespeichert sind. Laden Sie den YAML-Inhalt mit dieser Funktion, anstatt den Inhalt in Ihrer Bicep-Datei zu duplizieren. 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. Sie können keine Variablen in den Dateipfad aufnehmen, da sie bei der Kompilierung in die 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 in IntelliSense verfügbar. Beispielsweise können Sie eine Datei mit Werten erstellen, die für viele Bicep-Dateien freigegeben werden. Ein Beispiel finden Sie in diesem Artikel.

Diese Funktion erfordert Bicep CLI Version 0.16.X oder höher.

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

Rückgabewert

Der Inhalt der Datei als (beliebiges) „Any“-Objekt.

Beispiele

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 entsprechende Werte zuzuweisen.

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

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

loadTextContent

loadTextContent(filePath, [encoding])

Lädt den Inhalt der angegebenen Datei als Zeichenfolge.

Namespace: sys.

Parameter

Parameter Erforderlich Type BESCHREIBUNG
filePath Ja Zeichenfolge Der Pfad zur Datei, die geladen werden soll. Der Pfad ist relativ zur bereitgestellten Bicep-Datei. Er kann keine Variablen enthalten.
encoding Nein Zeichenfolge Die Codierung der Datei. Standardwert: utf-8. Verfügbare Optionen: iso-8859-1, us-ascii, utf-16, utf-16BE oder utf-8.

Bemerkungen

Verwenden Sie diese Funktion, wenn Sie über Inhalte verfügen, die in einer separaten Datei gespeichert sind. Sie können den Inhalt laden, anstatt ihn in Ihrer Bicep-Datei zu duplizieren. Beispielsweise können Sie 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 in den Dateipfad aufnehmen, da sie bei der Kompilierung in die 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 zum Laden von JSON-Dateien.

Diese Funktion erfordert Bicep CLI Version 0.4.X oder höher.

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

Rückgabewert

Der Inhalt der Datei als Zeichenfolge.

Beispiele

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

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

Nächste Schritte