Delen via


Bestandsfuncties voor Bicep

In dit artikel worden de Bicep-functies beschreven voor het laden van inhoud uit externe bestanden.

loadFileAsBase64

loadFileAsBase64(filePath)

Laadt het bestand als een base64-tekenreeks.

Naamruimte: sys.

Parameters

Parameter Vereist Type Description
Filepath Ja tekenreeks Het pad naar het bestand dat moet worden geladen. Het pad is relatief ten opzichte van het geïmplementeerde Bicep-bestand. Het kan geen variabelen bevatten.

Opmerkingen

Gebruik deze functie wanneer u binaire inhoud hebt die u wilt opnemen in de implementatie. In plaats van het bestand handmatig te coderen naar een base64-tekenreeks en het toe te voegen aan uw Bicep-bestand, laadt u het bestand met deze functie. Het bestand wordt geladen wanneer het Bicep-bestand wordt gecompileerd naar een JSON-sjabloon. U kunt variabelen in het bestandspad niet gebruiken omdat ze niet zijn opgelost bij het compileren van de sjabloon. Tijdens de implementatie bevat de JSON-sjabloon de inhoud van het bestand als een vastgelegde tekenreeks.

Voor deze functie is Bicep CLI versie 0.4.X of hoger vereist.

De maximale toegestane grootte van het bestand is 96 kB.

Retourwaarde

Het bestand als een base64-tekenreeks.

loadJsonContent

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

Laadt het opgegeven JSON-bestand als een willekeurig object.

Naamruimte: sys.

Parameters

Parameter Vereist Type Description
Filepath Ja tekenreeks Het pad naar het bestand dat moet worden geladen. Het pad is relatief ten opzichte van het geïmplementeerde Bicep-bestand. Het kan geen variabelen bevatten.
jsonPath Nee tekenreeks JSONPath-expressie om op te geven dat slechts een deel van het bestand wordt geladen.
Codering Nee tekenreeks De bestandscodering. De standaardwaarde is utf-8. De beschikbare opties zijn: iso-8859-1, us-ascii, utf-16, of utf-16BEutf-8.

Opmerkingen

Gebruik deze functie wanneer u JSON-inhoud hebt of JSON-inhoud minificeert die is opgeslagen in een afzonderlijk bestand. In plaats van de JSON-inhoud in uw Bicep-bestand te dupliceren, laadt u de inhoud met deze functie. U kunt een deel van een JSON-bestand laden door een JSON-pad op te geven. Het bestand wordt geladen wanneer het Bicep-bestand is gecompileerd naar de JSON-sjabloon. U kunt geen variabelen opnemen in het bestandspad omdat ze niet zijn opgelost bij het compileren van de sjabloon. Tijdens de implementatie bevat de JSON-sjabloon de inhoud van het bestand als een vastgelegde tekenreeks.

In VS Code zijn de eigenschappen van het geladen object beschikbaar intellisense. U kunt bijvoorbeeld een bestand maken met waarden om te delen in veel Bicep-bestanden. In dit artikel wordt een voorbeeld weergegeven.

Voor deze functie is Bicep CLI versie 0.7.X of hoger vereist.

De maximale toegestane grootte van het bestand is 1.048.576 tekens, inclusief regeleinden.

Retourwaarde

De inhoud van het bestand als een willekeurig object.

Voorbeelden

In het volgende voorbeeld wordt een JSON-bestand gemaakt dat waarden voor een netwerkbeveiligingsgroep bevat.

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

U laadt dat bestand en converteert het naar een JSON-object. U gebruikt het object om waarden toe te wijzen aan de resource.

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

U kunt het bestand met waarden opnieuw gebruiken in andere Bicep-bestanden die een netwerkbeveiligingsgroep implementeren.

loadYamlContent

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

Laadt het opgegeven YAML-bestand als een willekeurig object.

Naamruimte: sys.

Parameters

Parameter Vereist Type Description
Filepath Ja tekenreeks Het pad naar het bestand dat moet worden geladen. Het pad is relatief ten opzichte van het geïmplementeerde Bicep-bestand. Het kan geen variabelen bevatten.
pathFilter Nee tekenreeks Het padfilter is een JSONPath-expressie om op te geven dat slechts een deel van het bestand wordt geladen.
Codering Nee tekenreeks De bestandscodering. De standaardwaarde is utf-8. De beschikbare opties zijn: iso-8859-1, us-ascii, utf-16, of utf-16BEutf-8.

Opmerkingen

Gebruik deze functie wanneer u YAML-inhoud hebt of YAML-inhoud hebt minified die is opgeslagen in een afzonderlijk bestand. In plaats van de YAML-inhoud in uw Bicep-bestand te dupliceren, laadt u de inhoud met deze functie. U kunt een deel van een YAML-bestand laden door een padfilter op te geven. Het bestand wordt geladen wanneer het Bicep-bestand wordt gecompileerd naar de YAML-sjabloon. U kunt geen variabelen opnemen in het bestandspad omdat ze niet zijn opgelost bij het compileren van de sjabloon. Tijdens de implementatie bevat de YAML-sjabloon de inhoud van het bestand als een vastgelegde tekenreeks.

In VS Code zijn de eigenschappen van het geladen object beschikbaar intellisense. U kunt bijvoorbeeld een bestand maken met waarden om te delen in veel Bicep-bestanden. In dit artikel wordt een voorbeeld weergegeven.

Voor deze functie is Bicep CLI versie 0.16.X of hoger vereist.

De maximale toegestane grootte van het bestand is 1.048.576 tekens, inclusief regeleinden.

Retourwaarde

De inhoud van het bestand als een willekeurig object.

Voorbeelden

In het volgende voorbeeld wordt een YAML-bestand gemaakt dat waarden voor een netwerkbeveiligingsgroep bevat.

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

U laadt dat bestand en converteert het naar een JSON-object. U gebruikt het object om waarden toe te wijzen aan de resource.

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

U kunt het bestand met waarden opnieuw gebruiken in andere Bicep-bestanden die een netwerkbeveiligingsgroep implementeren.

loadTextContent

loadTextContent(filePath, [encoding])

Laadt de inhoud van het opgegeven bestand als een tekenreeks.

Naamruimte: sys.

Parameters

Parameter Vereist Type Description
Filepath Ja tekenreeks Het pad naar het bestand dat moet worden geladen. Het pad is relatief ten opzichte van het geïmplementeerde Bicep-bestand. Deze kan geen variabelen bevatten.
Codering Nee tekenreeks De bestandscodering. De standaardwaarde is utf-8. De beschikbare opties zijn: iso-8859-1, us-ascii, utf-16, of utf-16BEutf-8.

Opmerkingen

Gebruik deze functie wanneer u inhoud hebt die is opgeslagen in een afzonderlijk bestand. U kunt de inhoud laden in plaats van deze te dupliceren in uw Bicep-bestand. U kunt bijvoorbeeld een implementatiescript uit een bestand laden. Het bestand wordt geladen wanneer het Bicep-bestand is gecompileerd naar de JSON-sjabloon. U kunt geen variabelen opnemen in het bestandspad omdat ze niet zijn opgelost bij het compileren van de sjabloon. Tijdens de implementatie bevat de JSON-sjabloon de inhoud van het bestand als een vastgelegde tekenreeks.

Gebruik de loadJsonContent() functie om JSON-bestanden te laden.

Voor deze functie is Bicep CLI versie 0.4.X of hoger vereist.

De maximale toegestane grootte van het bestand is 131.072 tekens, inclusief regeleinden.

Retourwaarde

De inhoud van het bestand als een tekenreeks.

Voorbeelden

In het volgende voorbeeld wordt een script uit een bestand geladen en gebruikt voor een implementatiescript.

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

Volgende stappen