Bagikan melalui


Fungsi file untuk Bicep

Artikel ini menjelaskan fungsi Bicep untuk memuat konten dari file eksternal.

loadFileAsBase64

loadFileAsBase64(filePath)

Memuat file sebagai string base64.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
filePath Ya string Jalur ke file yang akan dimuat. Jalurnya relatif terhadap file Bicep yang disebarkan. Ini tidak dapat menyertakan variabel.

Keterangan

Gunakan fungsi ini ketika Anda memiliki konten biner yang ingin Anda sertakan dalam penyebaran. Daripada mengodekan file secara manual ke string base64 dan menambahkannya ke file Bicep Anda, muat file dengan fungsi ini. File dimuat ketika file Bicep dikompilasi ke templat JSON. Anda tidak dapat menggunakan variabel di jalur file karena belum diselesaikan saat mengkompilasi ke templat. Selama penyebaran, templat JSON berisi konten file sebagai string yang dikodekan secara permanen.

Fungsi ini memerlukan Bicep CLI versi 0.4.X atau yang lebih tinggi.

Ukuran maksimum file yang diizinkan adalah 96 Kb.

Nilai hasil

File sebagai string base64.

loadJsonContent

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

Memuat file JSON yang ditentukan sebagai objek Apa pun.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
filePath Ya string Jalur ke file yang akan dimuat. Jalurnya relatif terhadap file Bicep yang disebarkan. Ini tidak dapat menyertakan variabel.
jsonPath No string Ekspresi JSONPath untuk menentukan bahwa hanya sebagian file yang dimuat.
pengodean No string Pengodean file. Nilai defaultnya adalah utf-8. Opsi yang tersedia adalah: iso-8859-1, us-ascii, utf-16, utf-16BE, atau utf-8.

Keterangan

Gunakan fungsi ini ketika Anda memiliki konten JSON atau konten JSON yang diperkecil yang disimpan dalam file terpisah. Daripada menduplikasi konten JSON dalam file Bicep Anda, muat konten dengan fungsi ini. Anda dapat memuat bagian dari file JSON dengan menentukan jalur JSON. File dimuat ketika file Bicep dikompilasi ke templat JSON. Anda tidak dapat menyertakan variabel dalam jalur file karena belum diselesaikan saat mengkompilasi ke templat. Selama penyebaran, templat JSON berisi konten file sebagai string yang dikodekan secara permanen.

Dalam Visual Studio Code, properti objek yang dimuat menyediakan intellisense. Misalnya, Anda dapat membuat file dengan nilai untuk dibagikan ke banyak file Bisep. Sebuah contoh ditunjukkan dalam artikel ini.

Fungsi ini memerlukan Bicep CLI versi 0.7.X atau yang lebih tinggi.

Ukuran maksimum file yang diizinkan adalah 1.048.576 karakter, termasuk akhir baris.

Nilai hasil

Konten file sebagai objek Apa pun.

Contoh

Contoh berikut membuat file JSON yang berisi nilai untuk grup keamanan jaringan.

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

Anda memuat file itu dan mengonversinya menjadi objek JSON. Anda menggunakan objek untuk menetapkan nilai ke sumber daya.

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

Anda dapat menggunakan kembali file nilai dalam file Bicep lain yang menyebarkan grup keamanan jaringan.

loadYamlContent

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

Memuat file YAML yang ditentukan sebagai objek Apa pun.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
filePath Ya string Jalur ke file yang akan dimuat. Jalurnya relatif terhadap file Bicep yang disebarkan. Ini tidak dapat menyertakan variabel.
pathFilter No string Filter jalur adalah ekspresi JSONPath untuk menentukan bahwa hanya sebagian file yang dimuat.
pengodean No string Pengodean file. Nilai defaultnya adalah utf-8. Opsi yang tersedia adalah: iso-8859-1, us-ascii, utf-16, utf-16BE, atau utf-8.

Keterangan

Gunakan fungsi ini saat Anda memiliki konten YAML atau konten YAML minified yang disimpan dalam file terpisah. Daripada menduplikasi konten YAML dalam file Bicep Anda, muat konten dengan fungsi ini. Anda dapat memuat bagian dari file YAML dengan menentukan filter jalur. File dimuat ketika file Bicep dikompilasi ke templat YAML. Anda tidak dapat menyertakan variabel dalam jalur file karena belum diselesaikan saat mengkompilasi ke templat. Selama penyebaran, templat YAML berisi konten file sebagai string yang dikodekan secara permanen.

Dalam Visual Studio Code, properti objek yang dimuat menyediakan intellisense. Misalnya, Anda dapat membuat file dengan nilai untuk dibagikan ke banyak file Bisep. Sebuah contoh ditunjukkan dalam artikel ini.

Fungsi ini memerlukan Bicep CLI versi 0.16.X atau yang lebih tinggi.

Ukuran maksimum file yang diizinkan adalah 1.048.576 karakter, termasuk akhir baris.

Nilai hasil

Konten file sebagai objek Apa pun.

Contoh

Contoh berikut membuat file YAML yang berisi nilai untuk grup keamanan jaringan.

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

Anda memuat file itu dan mengonversinya menjadi objek JSON. Anda menggunakan objek untuk menetapkan nilai ke sumber daya.

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

Anda dapat menggunakan kembali file nilai dalam file Bicep lain yang menyebarkan grup keamanan jaringan.

loadTextContent

loadTextContent(filePath, [encoding])

Memuat konten file tertentu sebagai string.

Namespace: sys.

Parameter

Parameter Wajib Tipe Deskripsi
filePath Ya string Jalur ke file yang akan dimuat. Jalurnya relatif terhadap file Bicep yang disebarkan. Ini tidak dapat berisi variabel.
pengodean No string Pengodean file. Nilai defaultnya adalah utf-8. Opsi yang tersedia adalah: iso-8859-1, us-ascii, utf-16, utf-16BE, atau utf-8.

Keterangan

Gunakan fungsi ini saat Anda memiliki konten yang disimpan dalam file terpisah. Anda dapat memuat konten daripada menduplikasinya di file Bicep Anda. Misalnya, Anda dapat memuat skrip penyebaran dari file. File dimuat ketika file Bicep dikompilasi ke templat JSON. Anda tidak dapat menyertakan variabel apa pun dalam jalur file karena belum diselesaikan saat mengkompilasi ke templat. Selama penyebaran, templat JSON berisi konten file sebagai string yang dikodekan secara permanen.

Gunakan fungsi loadJsonContent()untuk memuat file JSON.

Fungsi ini memerlukan Bicep CLI versi 0.4.X atau yang lebih tinggi.

Ukuran maksimum file yang diizinkan adalah 131.072 karakter, termasuk akhir baris.

Nilai hasil

Konten file berupa string.

Contoh

Contoh berikut memuat skrip dari file dan menggunakannya untuk skrip penyebaran.

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

Langkah berikutnya