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@2023-11-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@2023-11-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@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'
}
}
Nächste Schritte
- Eine Beschreibung der Abschnitte in einer Bicep-Datei finden Sie unter Grundlegendes zur Struktur und Syntax von Bicep-Dateien.