Última revisão: maio de 2026
Construa os serviços da AWS do exame DP-600 com Terraform puro — um bloco de cada vez, cada um vinculado a um domínio do exame. O mesmo código funciona no OpenTofu.
Ao final deste laboratório, você terá provisionado, com Terraform simples, a capacidade do Microsoft Fabric que sustenta cada carga de trabalho do Fabric — uma capacidade F-SKU dimensionada para desenvolvimento (F2), uma conta de armazenamento ADLS Gen2 para destinos de atalho do OneLake, um workspace do Log Analytics para diagnósticos de capacidade e as atribuições de função que conectam tudo ao seu principal do Terraform. Workspaces do Fabric (Lakehouses, Warehouses, Notebooks) são criados dentro da capacidade via portal do Fabric ou API REST — isso não está no escopo do Terraform hoje.
Solte os trechos em um único main.tf, execute terraform init, depois terraform apply passo a passo.
>= 1.5 ou OpenTofu >= 1.6.az login).A capacidade do Fabric é o maior item de custo neste laboratório:
terraform destroy ou via portal).A pergunta sobre o anti-padrão de custo do DP-600, 100% das vezes, envolve "por que minha fatura do Fabric é de $262, mesmo que ninguém a esteja usando?" — porque a capacidade é cobrada 24/7, a menos que esteja pausada. Sempre destrua ou pause quando não estiver usando ativamente.
Início padrão do Azure. As capacidades do Fabric são vinculadas a regiões — escolha uma região onde suas fontes de dados estejam para evitar custos de transferência entre regiões (o Fabric lê do OneLake, que vive fisicamente na região da capacidade).
terraform {
required_version = ">= 1.5"
required_providers {
azurerm = { source = "hashicorp/azurerm", version = "~> 4.0" }
random = { source = "hashicorp/random", version = "~> 3.6" }
}
}
provider "azurerm" {
features {}
}
resource "random_id" "suffix" {
byte_length = 3
}
data "azurerm_client_config" "current" {}
locals {
tags = {
Project = "certlabpro-dp-600"
ManagedBy = "terraform"
}
}
resource "azurerm_resource_group" "main" {
name = "certlabpro-dp-600-rg"
location = "eastus"
tags = local.tags
}O recurso OneLake do Microsoft Fabric oferece um data lake unificado entre os workspaces do Fabric. Itens do Fabric (Lakehouses, Warehouses) armazenam fisicamente seus dados no OneLake — mas o Fabric também suporta atalhos que fazem referência a dados em armazenamento externo (ADLS Gen2, S3, GCS, Dataverse) como se vivessem no OneLake. O padrão de atalho é o tópico quente do DP-600 para Implementar e gerenciar uma solução de análise de dados — federar sem copiar.
Aqui, provisionamos uma conta ADLS Gen2 com namespace hierárquico habilitado (a configuração necessária para atalhos do OneLake). Você criaria o atalho real dentro do portal do Fabric apontando para esta conta, uma vez que ela existisse.
resource "azurerm_storage_account" "lake" {
name = "dp600lake${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
account_tier = "Standard"
account_replication_type = "LRS"
account_kind = "StorageV2"
is_hns_enabled = true # required for OneLake shortcuts
https_traffic_only_enabled = true
min_tls_version = "TLS1_2"
allow_nested_items_to_be_public = false
tags = local.tags
}
resource "azurerm_storage_container" "bronze" {
name = "bronze"
storage_account_id = azurerm_storage_account.lake.id
container_access_type = "private"
}
resource "azurerm_storage_container" "silver" {
name = "silver"
storage_account_id = azurerm_storage_account.lake.id
container_access_type = "private"
}
resource "azurerm_storage_container" "gold" {
name = "gold"
storage_account_id = azurerm_storage_account.lake.id
container_access_type = "private"
}A capacidade do Fabric é a unidade de faturamento para todas as cargas de trabalho do Fabric. Os workspaces no portal do Fabric são associados a uma capacidade, e é isso que determina os preços e a cota.
Provisionamos a menor capacidade de produção (F2). A lista administration_members nomeia quem pode administrar a capacidade no portal de administração do Fabric — para o laboratório, usamos o principal atual do Terraform. A função de administrador é separada das permissões de nível de workspace; os administradores de capacidade controlam o faturamento, as configurações de toda a capacidade e quais workspaces podem usá-la.
O DP-600 testa o dimensionamento da capacidade como um tema de otimização de custos: escolha o SKU menor que atenda às necessidades de RU/s da sua carga de trabalho, aumente para picos, diminua ou pause fora do horário comercial. Os SKUs F são pagos conforme o uso (faturamento por hora); os SKUs P mais antigos do Power BI Premium são de capacidade reservada (compromisso anual).
resource "azurerm_fabric_capacity" "main" {
name = "fab-dp600-${random_id.suffix.hex}"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
administration_members = [
data.azurerm_client_config.current.object_id,
]
sku {
name = "F2" # smallest Fabric SKU; F-series is pay-as-you-go
tier = "Fabric"
}
tags = local.tags
}O domínio Manter e otimizar soluções de análise do DP-600 testa o monitoramento da saúde da capacidade como a principal superfície de diagnóstico — limitação de capacidade, picos de duração de consulta, falhas de atualização, tudo aparece como sinais do Log Analytics. Provisionamos o workspace e uma Configuração de Diagnóstico na capacidade do Fabric que envia cada métrica e categoria de log para ele.
Com esta peça final, a base do Fabric está completa: capacidade dimensionada para a carga de trabalho, ADLS Gen2 pronto como destino de atalho, diagnósticos de capacidade fluindo para o Log Analytics. Workspaces do Fabric, Lakehouses, Warehouses, modelos semânticos e notebooks são todos criados dentro da capacidade via portal do Fabric ou API REST — essa é a camada de aplicação que este laboratório não tenta fazer no Terraform.
resource "azurerm_log_analytics_workspace" "main" {
name = "log-dp600"
resource_group_name = azurerm_resource_group.main.name
location = azurerm_resource_group.main.location
sku = "PerGB2018"
retention_in_days = 30
tags = local.tags
}
resource "azurerm_monitor_diagnostic_setting" "fabric" {
name = "diag"
target_resource_id = azurerm_fabric_capacity.main.id
log_analytics_workspace_id = azurerm_log_analytics_workspace.main.id
metric {
category = "AllMetrics"
enabled = true
}
}terraform destroy derruba tudo. Lembrete crítico: a capacidade do Fabric é cobrada 24/7 — mesmo um dia de deixar F2 rodando custa ~$8,70. Destrua prontamente. Alternativa: a capacidade suporta uma operação de pausa/reinício via portal do Azure que interrompe a cobrança sem destruir o recurso — útil se você quiser manter o laboratório, mas pagar apenas quando o estiver usando ativamente.
O DP-600 abrange muitas cargas de trabalho do Fabric que este laboratório não pode incluir em Terraform puro — Lakehouses (gerenciados pelo Fabric, não provisionáveis via azurerm), Warehouses, Bancos de Dados KQL (Eventhouses), notebooks, Data Pipelines (Data Factory dentro do Fabric), modelos semânticos (Power BI), dataflows Gen2 e a API REST do Microsoft Fabric para criação de workspace.
A API do Fabric Workspace está começando a ser implementada no provedor Terraform fabric (separado do azurerm), mas ainda está amadurecendo. Para fins de laboratório DP-600, o provisionamento de capacidade acima o leva ao ponto em que você pode abrir o portal do Fabric, criar um workspace vinculado a esta capacidade e construir Lakehouses + notebooks + warehouses dentro dele — da mesma forma que todo candidato ao DP-600 pratica.
Para cobertura serviço a serviço, consulte as seções Navegar e Editorial desta página de certificação.