Dela via


Filfunktioner för Bicep

I den här artikeln beskrivs Bicep-funktionerna för att läsa in innehåll från externa filer.

loadDirectoryFileInfo

loadDirectoryFileInfo(directoryPath, [searchPattern])

Läser in grundläggande information om en katalogs filer som Bicep-objekt. Filinläsning sker under kompilering, inte vid körning.

Namnområde: sys.

Parameterar

Parameter Krävs Typ Description
directoryPath Yes snöre Sökvägen är relativ till Bicep-filen som anropar den här funktionen. Den kan använda variabler, förutsatt att de är kompileringskonstanter, men det kan inte använda parametrar.
searchPattern Nej snöre Sökmönstret som ska användas vid inläsning av filer. Detta kan omfatta jokertecken.

Returvärde

En matris med objekt som var och en representerar en fil i katalogen. Varje objekt innehåller följande egenskaper:

Fastighet Typ Description
baseName snöre Namnet på filen.
utbyggnad snöre Filens tillägg.
relativePath snöre Den relativa sökvägen till den aktuella mallen.

Examples

I följande exempel läses filinformationen in för alla Bicep-filer i ./modules/ katalogen.

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

output dirFileInfoOutput object[] = dirFileInfo

Mappen innehåller bara en fil med namnet appService.bicep. Resultatet är:

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

loadFileAsBase64

loadFileAsBase64(filePath)

Läser in filen som en base64-sträng.

Namnområde: sys.

Parameterar

Parameter Krävs Typ Description
filePath Yes snöre Sökvägen till filen som ska läsas in. Sökvägen är relativ till den distribuerade Bicep-filen. Det kan inte innehålla variabler.

Anmärkningar

Använd den här funktionen när du har binärt innehåll som du vill inkludera i distributionen. Läs in filen med den här funktionen i stället för att manuellt koda filen till en base64-sträng och lägga till den i Bicep-filen. Filen läses in när Bicep-filen kompileras till en JSON-mall. Du kan inte använda variabler i filsökvägen eftersom de inte har lösts vid kompilering till mallen. Under distributionen innehåller JSON-mallen innehållet i filen som en hårdkodad sträng.

Den här funktionen kräver Bicep CLI version 0.4.X eller senare.

Den maximala tillåtna storleken på filen är 96 kB.

Returvärde

Filen som en base64-sträng.

loadJsonContent

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

Läser in den angivna JSON-filen som ett Alla-objekt.

Namnområde: sys.

Parameterar

Parameter Krävs Typ Description
filePath Yes snöre Sökvägen till filen som ska läsas in. Sökvägen är relativ till den distribuerade Bicep-filen. Det kan inte innehålla variabler.
jsonPath Nej snöre JSONPath-uttryck för att ange att endast en del av filen läses in.
encoding Nej snöre Filkodningen. Standardvärdet är utf-8. De tillgängliga alternativen är: iso-8859-1, us-ascii, utf-16, utf-16BEeller utf-8.

Anmärkningar

Använd den här funktionen när du har JSON-innehåll eller minifierat JSON-innehåll som lagras i en separat fil. Läs in innehållet med den här funktionen i stället för att duplicera JSON-innehållet i Bicep-filen. Du kan läsa in en del av en JSON-fil genom att ange en JSON-sökväg. Filen läses in när Bicep-filen kompileras till JSON-mallen. Du kan inte inkludera variabler i filsökvägen eftersom de inte har lösts vid kompilering till mallen. Under distributionen innehåller JSON-mallen innehållet i filen som en hårdkodad sträng.

I VS Code är egenskaperna för det inlästa objektet tillgängliga intellisense. Du kan till exempel skapa en fil med värden som ska delas över många Bicep-filer. Ett exempel visas i den här artikeln.

Den här funktionen kräver Bicep CLI version 0.7.X eller senare.

Den maximala tillåtna storleken på filen är 1 048 576 tecken, inklusive radslut.

Returvärde

Innehållet i filen som ett Valfritt objekt.

Examples

I följande exempel skapas en JSON-fil som innehåller värden för en nätverkssäkerhetsgrupp.

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

Du läser in filen och konverterar den till ett JSON-objekt. Du använder -objektet för att tilldela värden till resursen.

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

Du kan återanvända filen med värden i andra Bicep-filer som distribuerar en nätverkssäkerhetsgrupp.

loadYamlContent

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

Läser in den angivna YAML-filen som ett valfritt objekt.

Namnområde: sys.

Parameterar

Parameter Krävs Typ Description
filePath Yes snöre Sökvägen till filen som ska läsas in. Sökvägen är relativ till den distribuerade Bicep-filen. Det kan inte innehålla variabler.
pathFilter Nej snöre Sökvägsfiltret är ett JSONPath-uttryck för att ange att endast en del av filen läses in.
encoding Nej snöre Filkodningen. Standardvärdet är utf-8. De tillgängliga alternativen är: iso-8859-1, us-ascii, utf-16, utf-16BEeller utf-8.

Anmärkningar

Använd den här funktionen när du har YAML-innehåll eller minifierat YAML-innehåll som lagras i en separat fil. Läs in innehållet med den här funktionen i stället för att duplicera YAML-innehållet i Bicep-filen. Du kan läsa in en del av en YAML-fil genom att ange ett sökvägsfilter. Filen läses in när Bicep-filen kompileras till YAML-mallen. Du kan inte inkludera variabler i filsökvägen eftersom de inte har lösts vid kompilering till mallen. Under distributionen innehåller YAML-mallen innehållet i filen som en hårdkodad sträng.

I VS Code är egenskaperna för det inlästa objektet tillgängliga intellisense. Du kan till exempel skapa en fil med värden som ska delas över många Bicep-filer. Ett exempel visas i den här artikeln.

Den här funktionen kräver Bicep CLI version 0.16.X eller senare.

Den maximala tillåtna storleken på filen är 1 048 576 tecken, inklusive radslut.

Returvärde

Innehållet i filen som ett Valfritt objekt.

Examples

I följande exempel skapas en YAML-fil som innehåller värden för en nätverkssäkerhetsgrupp.

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

Du läser in filen och konverterar den till ett JSON-objekt. Du använder -objektet för att tilldela värden till resursen.

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

Du kan återanvända filen med värden i andra Bicep-filer som distribuerar en nätverkssäkerhetsgrupp.

loadTextContent

loadTextContent(filePath, [encoding])

Läser in innehållet i den angivna filen som en sträng.

Namnområde: sys.

Parameterar

Parameter Krävs Typ Description
filePath Yes snöre Sökvägen till filen som ska läsas in. Sökvägen är relativ till den distribuerade Bicep-filen. Den får inte innehålla variabler.
encoding Nej snöre Filkodningen. Standardvärdet är utf-8. De tillgängliga alternativen är: iso-8859-1, us-ascii, utf-16, utf-16BEeller utf-8.

Anmärkningar

Använd den här funktionen när du har innehåll som lagras i en separat fil. Du kan läsa in innehållet i stället för att duplicera det i Bicep-filen. Du kan till exempel läsa in ett distributionsskript från en fil. Filen läses in när Bicep-filen kompileras till JSON-mallen. Du kan inte ta med några variabler i filsökvägen eftersom de inte har lösts när du kompilerar till mallen. Under distributionen innehåller JSON-mallen innehållet i filen som en hårdkodad sträng.

loadJsonContent() Använd funktionen för att läsa in JSON-filer.

Den här funktionen kräver Bicep CLI version 0.4.X eller senare.

Den maximala tillåtna storleken på filen är 131 072 tecken, inklusive radslut.

Returvärde

Innehållet i filen som en sträng.

Examples

Följande exempel läser in ett skript från en fil och använder det för ett distributionsskript.

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ästa steg