Funções de arquivo para Bicep

Este artigo descreve as funções do Bíceps para carregar conteúdo de arquivos externos.

loadFileAsBase64

loadFileAsBase64(filePath)

Carrega o arquivo como uma cadeia de caracteres base64.

Espaço de nome: sys.

Parâmetros

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

Observações

Use essa função quando tiver conteúdo binário que gostaria de incluir na implantação. Em vez de codificar manualmente o arquivo para uma cadeia de caracteres base64 e adicioná-lo ao seu 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 durante a compilação no modelo. Durante a implantação, o modelo JSON contém o conteúdo do arquivo como uma cadeia de caracteres codificada.

Esta função requer Bicep CLI versão 0.4.X ou superior.

O tamanho máximo permitido do ficheiro é de 96 Kb.

Valor devolvido

O arquivo como uma cadeia de caracteres base64.

carregarJsonContent

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

Carrega o arquivo JSON especificado como um objeto Any.

Espaço de nome: sys.

Parâmetros

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

Observações

Use essa função quando tiver conteúdo JSON ou conteúdo JSON minificado armazenado em um arquivo separado. Em vez de duplicar o conteúdo JSON no arquivo Bicep, carregue o conteúdo com essa função. Você pode carregar uma parte de um arquivo JSON especificando um caminho JSON. O arquivo é carregado quando o arquivo Bicep é compilado para o modelo JSON. Não é possível incluir variáveis no caminho do arquivo porque elas não foram resolvidas durante a compilação no modelo. Durante a implantação, o modelo JSON contém o conteúdo do arquivo como uma cadeia de caracteres codificada.

No VS Code, as propriedades do objeto carregado estão disponíveis intellisense. Por exemplo, você pode criar um arquivo com valores para compartilhar em muitos arquivos Bicep. Um exemplo é mostrado neste artigo.

Esta função requer Bicep CLI versão 0.7.X ou superior.

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

Valor devolvido

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

Carregue esse arquivo e converta-o em um objeto JSON. Use o objeto para atribuir valores ao recurso.

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

Você pode reutilizar o arquivo de valores em outros arquivos Bicep que implantam um grupo de segurança de rede.

carregarYamlContent

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

Carrega o arquivo YAML especificado como um objeto Any.

Espaço de nome: sys.

Parâmetros

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

Observações

Use esta função quando você tiver conteúdo YAML ou conteúdo YAML minificado que é armazenado em um arquivo separado. Em vez de duplicar o conteúdo YAML no arquivo Bicep, carregue o conteúdo com essa função. Você pode carregar uma parte de um arquivo YAML especificando um filtro de caminho. O arquivo é carregado quando o arquivo Bicep é compilado para o modelo YAML. Não é possível incluir variáveis no caminho do arquivo porque elas não foram resolvidas durante a compilação no modelo. Durante a implantação, o modelo YAML contém o conteúdo do arquivo como uma cadeia de caracteres codificada.

No VS Code, as propriedades do objeto carregado estão disponíveis intellisense. Por exemplo, você pode criar um arquivo com valores para compartilhar em muitos arquivos Bicep. Um exemplo é mostrado neste artigo.

Esta função requer Bicep CLI versão 0.16.X ou superior.

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

Valor devolvido

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"

Carregue esse arquivo e converta-o em um objeto JSON. Use o objeto para atribuir valores ao recurso.

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

Você pode reutilizar 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.

Espaço de nome: sys.

Parâmetros

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

Observações

Use esta função quando tiver conteúdo armazenado em um arquivo separado. Você pode carregar o conteúdo em vez de duplicá-lo em seu arquivo Bicep. Por exemplo, você pode carregar um script de implantação de um arquivo. O arquivo é carregado quando o arquivo Bicep é compilado para o modelo JSON. Não é possível incluir variáveis no caminho do arquivo porque elas não foram resolvidas durante a compilação no modelo. Durante a implantação, o modelo JSON contém o conteúdo do arquivo como uma cadeia de caracteres codificada.

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

Esta função requer Bicep CLI versão 0.4.X ou superior.

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

Valor devolvido

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

Próximos passos