Compartilhar via


Funções de arquivos do Bicep

Este artigo descreve as funções do Bicep para carregar o conteúdo de arquivos externos.

loadFileAsBase64

loadFileAsBase64(filePath)

Carrega o arquivo como uma cadeia de caracteres Base64.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
filePath Sim string O caminho para o arquivo a ser carregado. O caminho é relativo ao arquivo Bicep implantado. Não pode incluir variáveis.

Comentários

Use essa função quando tiver um conteúdo binário que deseja incluir na implantação. Em vez de codificar manualmente o arquivo em uma cadeia de caracteres Base64 e adicioná-lo ao arquivo Bicep, carregue o arquivo com essa função. O arquivo é carregado quando o arquivo Bicep é compilado em um modelo JSON. Não é possível usar variáveis no caminho do arquivo porque elas não foram resolvidas ao compilar para o modelo. Durante a implantação, o modelo JSON contém o conteúdo do arquivo como uma cadeia de caracteres embutida em código.

Essa função requer a CLI do Bicep versão 0.4.X ou superior.

O tamanho máximo permitido do arquivo é de 96 KB.

Valor retornado

O arquivo como uma cadeia de caracteres Base64.

loadJsonContent

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

Carrega o arquivo JSON especificado como um objeto Any.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
filePath Sim string O caminho para o arquivo a ser carregado. O caminho é relativo ao arquivo Bicep implantado. Não pode incluir variáveis.
jsonPath Não string A expressão JSONPath deve especificar que apenas parte do arquivo é carregada.
codificando Não string A codificação do arquivo. O valor padrão é utf-8. As opções disponíveis são: iso-8859-1, us-ascii, utf-16, utf-16BE ou utf-8.

Comentários

Use esta função quando tiver conteúdo JSON ou conteúdo JSON reduzido armazenado em um arquivo separado. Em vez de duplicar o conteúdo JSON no arquivo Bicep, carregue-o com essa função. É possível carregar uma parte de um arquivo JSON especificando um caminho JSON. O arquivo é carregado quando o arquivo Bicep é compilado no modelo JSON. Não é possível incluir variáveis no caminho do arquivo porque elas não foram resolvidas ao compilar para o modelo. Durante a implantação, o modelo JSON contém o conteúdo do arquivo como uma cadeia de caracteres embutida em código.

No VS Code, as propriedades do objeto carregado estão disponíveis no IntelliSense. Por exemplo, você pode criar um arquivo com valores para compartilhamento em vários arquivos Bicep. Um exemplo é mostrado neste artigo.

Essa função requer a CLI do Bicep versão 0.7.X ou superior.

O tamanho máximo permitido do arquivo é de 1.048.576 caracteres, incluindo terminações de linha.

Retornar valor

O conteúdo do arquivo como um objeto Any.

Exemplos

O exemplo a seguir cria um arquivo JSON que contém valores para um grupo de segurança de rede.

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

Você carregará esse arquivo e o converterá em um objeto JSON. Além disso, usará o objeto para atribuir valores ao recurso.

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

Reutilize o arquivo de valores em outros arquivos Bicep que implantam um grupo de segurança de rede.

loadYamlContent

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

Carrega o arquivo YAML especificado como um objeto Qualquer.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
filePath Sim string O caminho para o arquivo a ser carregado. O caminho é relativo ao arquivo Bicep implantado. Não pode incluir variáveis.
pathFilter Não string O filtro de caminho é uma expressão JSONPath para especificar que apenas parte do arquivo está carregada.
codificando Não string A codificação do arquivo. O valor padrão é utf-8. As opções disponíveis são: iso-8859-1, us-ascii, utf-16, utf-16BE ou utf-8.

Comentários

Use essa função quando você tiver conteúdos YAML ou conteúdos YAML reduzidos armazenados em um arquivo separado. Em vez de duplicar o conteúdo YAML no seu arquivo Bicep, carregue o conteúdo com esta função. Você pode carregar uma parte de um arquivo YAML especificando um arquivador de caminho. O arquivo é carregado quando o arquivo Bicep é compilado no modelo do YAML. Não é possível incluir variáveis no caminho do arquivo porque elas não foram resolvidas ao compilar para o modelo. Durante a implantação, o modelo do YAML contém o conteúdo do arquivo como uma cadeia de caracteres embutidas em código.

No VS Code, as propriedades do objeto carregado estão disponíveis no IntelliSense. Por exemplo, você pode criar um arquivo com valores para compartilhamento em vários arquivos Bicep. Um exemplo é mostrado neste artigo.

Essa função requer a CLI do Bicep versão 0.16.X ou superior.

O tamanho máximo permitido do arquivo é de 1.048.576 caracteres, incluindo terminações de linha.

Retornar valor

O conteúdo do arquivo como um objeto Any.

Exemplos

O exemplo a seguir cria um arquivo YAML que contém valores para um grupo de segurança de rede.

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

Você carregará esse arquivo e o converterá em um objeto JSON. Além disso, usará o objeto para atribuir valores ao recurso.

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

Reutilize o arquivo de valores em outros arquivos Bicep que implantam um grupo de segurança de rede.

loadTextContent

loadTextContent(filePath, [encoding])

Carrega o conteúdo do arquivo especificado como uma cadeia de caracteres.

Namespace: sys.

Parâmetros

Parâmetro Obrigatório Type Descrição
filePath Sim string O caminho para o arquivo a ser carregado. O caminho é relativo ao arquivo Bicep implantado. Não pode conter variáveis.
codificando Não string A codificação do arquivo. O valor padrão é utf-8. As opções disponíveis são: iso-8859-1, us-ascii, utf-16, utf-16BE ou utf-8.

Comentários

Use essa função quando tiver o conteúdo armazenado em um arquivo separado. É possível carregar o conteúdo em vez de duplicá-lo no arquivo Bicep. Por exemplo, você pode carregar um script de implantação com base em um arquivo. O arquivo é carregado quando o arquivo Bicep é compilado no modelo JSON. Não é possível incluir quaisquer variáveis no caminho do arquivo porque elas não foram resolvidas ao compilar para o modelo. Durante a implantação, o modelo JSON contém o conteúdo do arquivo como uma cadeia de caracteres embutida em código.

Use a função loadJsonContent() para carregar arquivos JSON.

Essa função requer a CLI do Bicep versão 0.4.X ou superior.

O tamanho máximo permitido do arquivo é de 131.072 caracteres, incluindo terminações de linha.

Valor retornado

O conteúdo do arquivo como uma cadeia de caracteres.

Exemplos

O exemplo a seguir carrega um script de um arquivo e o usa para um script de implantação.

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

Próximas etapas