Funkcje plików dla Bicep

W tym artykule opisano funkcje Bicep służące do ładowania zawartości z plików zewnętrznych.

loadFileAsBase64

loadFileAsBase64(filePath)

Ładuje plik jako ciąg base64.

Przestrzeń nazw: sys.

Parametry

Parametr Wymagania Type Opis
Filepath Tak string Ścieżka do pliku do załadowania. Ścieżka jest względna względem wdrożonego pliku Bicep. Nie może zawierać zmiennych.

Uwagi

Użyj tej funkcji, gdy masz zawartość binarną, którą chcesz uwzględnić we wdrożeniu. Zamiast ręcznie kodować plik do ciągu base64 i dodawać go do pliku Bicep, załaduj plik za pomocą tej funkcji. Plik jest ładowany po skompilowaniu pliku Bicep do szablonu JSON. Nie można używać zmiennych w ścieżce pliku, ponieważ nie zostały one rozwiązane podczas kompilowania do szablonu. Podczas wdrażania szablon JSON zawiera zawartość pliku jako zakodowany ciąg.

Ta funkcja wymaga interfejsu wiersza polecenia Bicep w wersji 0.4.X lub nowszej.

Maksymalny dozwolony rozmiar pliku to 96 KB.

Wartość zwracana

Plik jako ciąg base64.

loadJsonContent

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

Ładuje określony plik JSON jako dowolny obiekt.

Przestrzeń nazw: sys.

Parametry

Parametr Wymagania Type Opis
Filepath Tak string Ścieżka do pliku do załadowania. Ścieżka jest względna względem wdrożonego pliku Bicep. Nie może zawierać zmiennych.
jsonPath Nie. string Wyrażenie JSONPath określające, że załadowana jest tylko część pliku.
encoding Nie. string Kodowanie pliku. Domyślna wartość to utf-8. Dostępne opcje to: iso-8859-1, , us-asciiutf-16, utf-16BE, lub utf-8.

Uwagi

Użyj tej funkcji, gdy masz zawartość JSON lub minimalną zawartość JSON przechowywaną w osobnym pliku. Zamiast duplikować zawartość JSON w pliku Bicep, załaduj zawartość za pomocą tej funkcji. Część pliku JSON można załadować, określając ścieżkę JSON. Plik jest ładowany po skompilowaniu pliku Bicep do szablonu JSON. Nie można uwzględnić zmiennych w ścieżce pliku, ponieważ nie zostały one rozwiązane podczas kompilowania do szablonu. Podczas wdrażania szablon JSON zawiera zawartość pliku jako zakodowany ciąg.

W programie VS Code właściwości załadowanego obiektu są dostępne w funkcji IntelliSense. Na przykład można utworzyć plik z wartościami, które mają być współużytkować w wielu plikach Bicep. Przykład pokazano w tym artykule.

Ta funkcja wymaga interfejsu wiersza polecenia Bicep w wersji 0.7.X lub nowszej.

Maksymalny dozwolony rozmiar pliku to 1048 576 znaków, w tym zakończenia wiersza.

Wartość zwracana

Zawartość pliku jako dowolny obiekt.

Przykłady

W poniższym przykładzie tworzony jest plik JSON zawierający wartości dla sieciowej grupy zabezpieczeń.

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

Załadujesz ten plik i przekonwertujesz go na obiekt JSON. Obiekt służy do przypisywania wartości do zasobu.

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

Możesz ponownie użyć pliku wartości w innych plikach Bicep, które wdrażają sieciową grupę zabezpieczeń.

loadYamlContent

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

Ładuje określony plik YAML jako dowolny obiekt.

Przestrzeń nazw: sys.

Parametry

Parametr Wymagania Type Opis
Filepath Tak string Ścieżka do pliku do załadowania. Ścieżka jest względna względem wdrożonego pliku Bicep. Nie może zawierać zmiennych.
pathFilter Nie. string Filtr ścieżki jest wyrażeniem JSONPath określającym, że ładowana jest tylko część pliku.
encoding Nie. string Kodowanie pliku. Domyślna wartość to utf-8. Dostępne opcje to: iso-8859-1, , us-asciiutf-16, utf-16BE, lub utf-8.

Uwagi

Użyj tej funkcji, gdy masz zawartość YAML lub zawartość YAML, która jest przechowywana w osobnym pliku. Zamiast duplikować zawartość YAML w pliku Bicep, załaduj zawartość za pomocą tej funkcji. Część pliku YAML można załadować, określając filtr ścieżki. Plik jest ładowany po skompilowaniu pliku Bicep do szablonu YAML. Nie można uwzględnić zmiennych w ścieżce pliku, ponieważ nie zostały one rozwiązane podczas kompilowania do szablonu. Podczas wdrażania szablon YAML zawiera zawartość pliku jako zakodowany ciąg.

W programie VS Code właściwości załadowanego obiektu są dostępne w funkcji IntelliSense. Na przykład można utworzyć plik z wartościami, które mają być współużytkować w wielu plikach Bicep. Przykład pokazano w tym artykule.

Ta funkcja wymaga interfejsu wiersza polecenia Bicep w wersji 0.16.X lub nowszej.

Maksymalny dozwolony rozmiar pliku to 1048 576 znaków, w tym zakończenia wiersza.

Wartość zwracana

Zawartość pliku jako dowolny obiekt.

Przykłady

Poniższy przykład tworzy plik YAML zawierający wartości sieciowej grupy zabezpieczeń.

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

Załadujesz ten plik i przekonwertujesz go na obiekt JSON. Obiekt służy do przypisywania wartości do zasobu.

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

Możesz ponownie użyć pliku wartości w innych plikach Bicep, które wdrażają sieciową grupę zabezpieczeń.

loadTextContent

loadTextContent(filePath, [encoding])

Ładuje zawartość określonego pliku jako ciąg.

Przestrzeń nazw: sys.

Parametry

Parametr Wymagania Type Opis
Filepath Tak string Ścieżka do pliku do załadowania. Ścieżka jest względna względem wdrożonego pliku Bicep. Nie może zawierać zmiennych.
encoding Nie. string Kodowanie pliku. Domyślna wartość to utf-8. Dostępne opcje to: iso-8859-1, , us-asciiutf-16, utf-16BE, lub utf-8.

Uwagi

Użyj tej funkcji, gdy masz zawartość przechowywaną w osobnym pliku. Zawartość można załadować zamiast duplikować ją w pliku Bicep. Można na przykład załadować skrypt wdrożenia z pliku. Plik jest ładowany po skompilowaniu pliku Bicep do szablonu JSON. Nie można uwzględnić żadnych zmiennych w ścieżce pliku, ponieważ nie zostały one rozwiązane podczas kompilowania do szablonu. Podczas wdrażania szablon JSON zawiera zawartość pliku jako zakodowany ciąg.

loadJsonContent() Użyj funkcji , aby załadować pliki JSON.

Ta funkcja wymaga interfejsu wiersza polecenia Bicep w wersji 0.4.X lub nowszej.

Maksymalny dozwolony rozmiar pliku to 131 072 znaki, w tym zakończenia wierszy.

Wartość zwracana

Zawartość pliku jako ciąg.

Przykłady

Poniższy przykład ładuje skrypt z pliku i używa go do skryptu wdrażania.

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

Następne kroki