Pular para o conteúdo principal

Laboratório Técnico: Export a deployment as an Azure Resource Manager template or convert an Azure Resource Manager template to a Bicep file

Questões

Questão 1 — Múltipla Escolha

Um administrador precisa replicar exatamente a configuração de um grupo de recursos existente em uma nova assinatura. Ele acessa o portal do Azure, navega até o grupo de recursos e utiliza a opção Export template.

Qual é a limitação mais importante que ele deve considerar antes de usar esse template exportado diretamente em produção?

A) O template exportado nunca inclui recursos de rede, exigindo reconstrução manual das VNets.

B) O template exportado pode conter valores fixos no lugar de parâmetros, reduzindo a portabilidade e exigindo edição manual antes do reuso.

C) O template exportado é gerado no formato Bicep e precisa ser convertido para JSON antes de ser implantado via Azure CLI.

D) O portal do Azure só permite exportar templates de grupos de recursos com menos de 10 recursos, bloqueando exportações maiores.


Questão 2 — Cenário Técnico

Uma equipe recebeu o seguinte template ARM em JSON para revisão:

{
"resources": [
{
"type": "Microsoft.Storage/storageAccounts",
"apiVersion": "2022-09-01",
"name": "mystorage",
"location": "eastus",
"sku": {
"name": "Standard_LRS"
},
"kind": "StorageV2"
}
]
}

A equipe deseja converter esse arquivo para Bicep a fim de facilitar a manutenção. Qual comando produz o arquivo Bicep equivalente a partir desse JSON?

A) az bicep build --file template.json --outfile template.bicep

B) az bicep decompile --file template.json

C) az deployment group export --template-file template.json --language bicep

D) bicep convert --input template.json --output template.bicep


Questão 3 — Verdadeiro ou Falso

Ao executar az bicep decompile em um template ARM complexo, o arquivo Bicep gerado é sempre funcionalmente equivalente ao JSON original e pode ser implantado imediatamente sem nenhuma revisão manual.

(Verdadeiro / Falso)


Questão 4 — Cenário Técnico

Um engenheiro exportou um template ARM pelo portal do Azure imediatamente após criar uma Azure Function App que utiliza um plano de consumo. Ao tentar reimplantar esse template em outro grupo de recursos, a implantação falha com erro de validação relacionado a propriedades não suportadas.

Qual é a causa mais provável desse comportamento?

A) O portal do Azure não suporta exportação de recursos do tipo Microsoft.Web, exigindo exportação exclusivamente via CLI.

B) O template exportado pelo portal pode capturar propriedades somente leitura ou estados de runtime que não são válidos como entrada em uma nova implantação.

C) O plano de consumo de Azure Functions não pode ser descrito em ARM templates e exige implantação manual pelo portal.

D) O engenheiro deveria ter usado az group export com a flag --include-parameter-default-value para evitar o erro.


Questão 5 — Múltipla Escolha

Considerando as abordagens disponíveis para obter um template ARM de uma implantação existente, qual é a diferença funcional entre usar Export template no grupo de recursos e acessar o histórico de implantações pelo menu Deployments do mesmo grupo?

A) Exportar pelo grupo de recursos gera Bicep nativo, enquanto o histórico de implantações gera somente JSON.

B) O histórico de implantações preserva o template exatamente como foi submetido originalmente, enquanto a exportação do grupo de recursos reflete o estado atual inferido dos recursos provisionados.

C) Ambas as abordagens produzem templates idênticos; a diferença está apenas na interface de navegação utilizada.

D) O histórico de implantações só está disponível para assinaturas com plano de suporte Premier ativo.


Gabarito e Explicações

Gabarito — Questão 1

Resposta: B

Explique:

  • O mecanismo de exportação do portal do Azure realiza engenharia reversa do estado atual dos recursos. Nesse processo, valores que deveriam ser parametrizados (como localização, nomes e SKUs) frequentemente aparecem como literais fixos no JSON gerado. Isso compromete a reutilização do template sem edição prévia.
  • A alternativa A é falsa: recursos de rede são incluídos normalmente na exportação. A alternativa C inverte o comportamento real: a exportação padrão gera JSON, não Bicep. A alternativa D não corresponde a nenhum limite documentado pela Microsoft.
  • Usar um template com valores fixos em produção sem revisão pode causar colisões de nome, implantações na região errada ou violações de política organizacional.

Gabarito — Questão 2

Resposta: B

Explique:

  • O comando correto para converter um template ARM JSON em Bicep é az bicep decompile --file template.json. Esse comando lê o arquivo JSON e gera um arquivo .bicep no mesmo diretório com o mesmo nome base.
  • A alternativa A descreve o processo inverso: az bicep build compila um arquivo .bicep em JSON, não o contrário. A alternativa C mistura comandos de exportação de implantação com flags inexistentes. A alternativa D usa uma sintaxe que não existe na CLI do Azure nem no executável bicep.
  • Confundir build com decompile é um erro operacional comum e resulta em falha imediata do comando ou geração de um arquivo no formato oposto ao desejado.

Gabarito — Questão 3

Resposta: Falso

Explique:

  • A decompilação via az bicep decompile é um processo de melhor esforço. O compilador Bicep adverte explicitamente que o arquivo gerado pode conter erros, comentários de aviso ou construções que precisam de ajuste manual, especialmente em templates com recursos aninhados, expressões complexas, copy loops em JSON, ou propriedades sem mapeamento direto em Bicep.
  • A equivalência funcional precisa ser verificada, e o arquivo gerado deve ser revisado antes de qualquer implantação. Assumir equivalência automática é um risco operacional real que pode causar implantações com comportamento diferente do esperado.

Gabarito — Questão 4

Resposta: B

Explique:

  • A exportação pelo portal captura o estado persistido no Azure Resource Manager, que pode incluir propriedades computadas, campos somente leitura e atributos de runtime inseridos automaticamente pelo serviço. Quando esse template é submetido como entrada em uma nova implantação, o ARM rejeita propriedades que não fazem parte do schema de entrada do recurso.
  • A alternativa A é incorreta: o portal suporta exportação de recursos Microsoft.Web. A alternativa C é falsa: planos de consumo têm representação completa em ARM e Bicep. A alternativa D menciona uma flag real (--include-parameter-default-value), mas ela controla valores padrão de parâmetros e não resolve o problema de propriedades somente leitura.
  • Esse comportamento reforça a necessidade de revisar e limpar templates exportados antes de usá-los como base para novas implantações.

Gabarito — Questão 5

Resposta: B

Explique:

  • O histórico de implantações armazena o template exatamente como foi enviado para o ARM no momento da implantação original, incluindo seus parâmetros e estrutura declarada pelo autor. Já a exportação pelo grupo de recursos reconstrói um template a partir do estado atual inferido de cada recurso provisionado, o que pode diferir do template original por omissões, reestruturações ou adição de propriedades padrão.
  • A alternativa A é incorreta quanto ao formato: ambas as fontes produzem JSON por padrão. A alternativa C ignora uma diferença fundamental e documentada entre as duas abordagens. A alternativa D não corresponde a nenhuma restrição real de plano de suporte.
  • Para reproduzir uma implantação com fidelidade máxima ao que foi originalmente aplicado, o histórico de implantações é a fonte mais confiável.