Tutorial: Utilizar APIs da Zona de Consumo do Analytics

Este tutorial mostra como utilizar as APIs de gestão da Zona de Consumo de Análise (ACZ) no Azure Data Manager for Energy. Cria, lista, recupera e elimina instâncias ACZ usando cURL.

Importante

Analytics Consumption Zone está atualmente em versão preliminar. Para termos legais que se aplicam a funcionalidades do Azure que estejam em beta, pré-visualização ou que ainda não tenham sido lançadas em disponibilidade geral, consulte Termos Suplementares de Utilização para Prévisualizações do Microsoft Azure.

Durante a pré-visualização, o ACZ está disponível apenas em instâncias de nível Developer e requer o uso de listas de autorizações. Siga as orientações em Ativar Zona de Consumo de Análises e contacte o seu representante da Microsoft.

Neste tutorial, aprenderás como:

  • Cria uma instância ACZ.
  • Liste todas as instâncias ACZ numa partição de dados.
  • Obtenha detalhes de uma instância ACZ específica.
  • Eliminar uma instância de ACZ.

Pré-requisitos

Tip

Explore a API de forma interativa: Pode visualizar a especificação completa da API ACZ e os endpoints de teste usando a interface do Swagger em https://{instance-name}.energy.azure.com/api/acz/v1/docs. Substitua {instance-name} pelo nome da sua instância do Azure Data Manager for Energy.

Obtenha os detalhes da sua instância Azure Data Manager for Energy

Recolha estes dados na sua instância Azure Data Manager for Energy no portal Azure.

Antes de começar

Os exemplos de código neste tutorial usam valores provisórios no {curly-braces} formato. Substitui esses marcadores de posição pelos teus valores reais quando executares os comandos.

Todas as chamadas de API requerem autenticação. Os exemplos de Bash e PowerShell mostram geração de tokens inline usando a CLI do Azure. Para métodos alternativos de autenticação, veja Gerar um token de autenticação.

Criar uma instância ACZ

Use a API Create ACZ para configurar uma nova instância ACZ para uma partição de dados.

API

POST /api/acz/v1/aczs

Pontos principais

  • No máximo, três instâncias ACZ por partição de dados (limite da versão preliminar).
  • O nome ACZ deve ser único dentro da partição.
  • A identidade gerida atribuída pelo utilizador deve ser:
    • Atribuído ao recurso Azure Data Manager for Energy (veja Ativar a Zona de Consumo de Análise).
    • Foi concedida a função Storage Blob Data Contributor na conta de armazenamento de destino do Azure Data Lake Storage Gen2.
  • É necessária uma conta de armazenamento Data Lake Storage Gen2 com um namespace hierárquico ativado.
# Get auth app ID for your Azure Data Manager for Energy instance
AUTH_APP_ID=$(az resource show --ids /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.OpenEnergyPlatform/energyServices/{adme-instance-name} --query properties.authAppId -o tsv)

# Get access token
TOKEN=$(az account get-access-token --resource $AUTH_APP_ID --query accessToken -o tsv)

# Create ACZ instance
curl --request POST \
  --url https://{base-url}/api/acz/v1/aczs \
  --header "Authorization: Bearer $TOKEN" \
  --header 'Content-Type: application/json' \
  --header 'data-partition-id: {data-partition-id}' \
  --data '{
    "name": "{acz-name}",
    "aczType": "{acz-type}",
    "targetFormat": "DELTA_PARQUET",
    "allCatalogSync": false,
    "sink": {
      "storageType": "microsoft.storage/storageaccounts",
      "storageId": "{storage-resource-id}",
      "basePath": "{base-path}"
    },
    "configuration": {
      "catalogKinds": ["{catalog-kinds}"],
      "wellboreDDMSKinds": ["{wellbore-ddms-kinds}"]
    }
  }'

Substitua os marcadores

Placeholder Description
{subscription-id} ID de subscrição onde reside o seu Azure Data Manager para a instância de Energia.
{resource-group} Grupo de recursos que contém a sua instância Azure Data Manager for Energy.
{adme-instance-name} O nome da sua instância do Azure Data Manager for Energy.
{base-url} A URL da sua instância Azure Data Manager for Energy (por exemplo, myinstance.energy.azure.com).
{data-partition-id} O ID da sua partição de dados (por exemplo, opendes).
{acz-name} Nome de exibição para a instância ACZ (1-100 caracteres, por exemplo, my-acz-wells-and-logs).
{acz-type} Opcional: LATEST_VERSION (por defeito) exporta apenas a versão mais recente e ALL_VERSIONS exporta todas as versões.
{storage-resource-id} ID de recurso Azure da conta de armazenamento de destino Data Lake Storage Gen2 (por exemplo, /subscriptions/xxx.../storageAccounts/mystorageacct).
{base-path} Opcional: Caminho base dentro da conta de armazenamento para a saída de dados ACZ (por exemplo, acz-output).
allCatalogSync Opcional (por defeito: false). Quando definido para true, exporta todos os tipos de catálogo da partição. Especificado fora da configuration secção. Quando true, catalogKinds e wellboreDDMSKinds em configuração são ignorados para dados de catálogo.
{catalog-kinds} Opcional: cadeias de tipos do catálogo OSDU® para sincronizar (por exemplo, ["osdu:wks:master-data--Well:*"]). Ignorado se allCatalogSync estiver true.
{wellbore-ddms-kinds} Opcional: cadeias de tipo do Wellbore Domain Gestão de Dados Service (DDMS) para sincronizar (por exemplo, ["osdu:wks:work-product-component--WellLog:*"]). Os downloads de ficheiros ocorrem apenas nos tipos listados aqui.

Tip

Exportar todos os dados do catálogo: Defina "allCatalogSync": true (fora da configuration secção) para exportar todos os tipos de catálogo a partir da sua partição de dados. Quando esta opção está ativada, as matrizes catalogKinds e wellboreDDMSKinds na configuração são ignoradas relativamente aos dados do catálogo. Os downloads massivos de ficheiros Wellbore DDMS ainda ocorrem apenas para os tipos listados em wellboreDDMSKinds.

Deve fornecer pelo menos uma das seguintes opções:

  • Definir "allCatalogSync": true (fora da configuração).
  • Forneça na configuração o array catalogKinds com pelo menos um padrão de tipo.
  • Forneça um array wellboreDDMSKinds na configuração com pelo menos um padrão de tipo.

Exemplo de resposta (201 Criado)

{
  "aczId": "acz-abc123def456",
  "name": "my-acz-wells-and-logs",
  "status": "ACTIVE",
  "aczType": "LATEST_VERSION",
  "targetFormat": "DELTA_PARQUET",
  "sink": {
    "storageType": "microsoft.storage/storageaccounts",
    "storageId": "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{account}",
    "basePath": "acz-output"
  },
  "allCatalogSync": false,
  "configuration": {
    "catalogKinds": [
      "osdu:wks:master-data--Well:*",
      "osdu:wks:reference-data--UnitOfMeasure:*"
    ],
    "wellboreDDMSKinds": [
      "osdu:wks:work-product-component--WellLog:*"
    ]
  },
  "historicalSnapshotStatus": "PROCESSING",
  "createdTs": "2026-03-31T10:00:00Z",
  "updatedTs": "2026-03-31T10:00:00Z",
  "createdBy": "user@contoso.com"
}

Depois de criar a instância ACZ, é iniciado o instantâneo histórico com o estado PROCESSING. Usa a API do Get ACZ para verificar o estado.

Lista de instâncias ACZ

Use a API List ACZs para obter todas as instâncias ACZ numa partição de dados.

API

GET /api/acz/v1/aczs

# Get auth app ID for your Azure Data Manager for Energy instance
AUTH_APP_ID=$(az resource show --ids /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.OpenEnergyPlatform/energyServices/{adme-instance-name} --query properties.authAppId -o tsv)

# Get access token
TOKEN=$(az account get-access-token --resource $AUTH_APP_ID --query accessToken -o tsv)

# List ACZ instances
curl --request GET \
  --url https://{base-url}/api/acz/v1/aczs \
  --header "Authorization: Bearer $TOKEN" \
  --header 'Accept: application/json' \
  --header 'data-partition-id: {data-partition-id}'

Substitua os marcadores

Placeholder Description
{subscription-id} ID de subscrição onde reside o seu Azure Data Manager para a instância de Energia.
{resource-group} Grupo de recursos que contém a sua instância Azure Data Manager for Energy.
{adme-instance-name} O nome da instância do Azure Data Manager for Energy.
{base-url} A URL da sua instância Azure Data Manager for Energy (por exemplo, myinstance.energy.azure.com).
{data-partition-id} O ID da sua partição de dados (por exemplo, opendes).

Resposta de exemplo (200 OK)

{
  "items": [
    {
      "aczId": "acz-abc123def456",
      "name": "my-acz-wells-and-logs",
      "status": "ACTIVE",
      "aczType": "LATEST_VERSION",
      "targetFormat": "DELTA_PARQUET",
      "sink": {
        "storageType": "microsoft.storage/storageaccounts",
        "storageId": "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{account}",
        "basePath": "acz-output"
      },
      "allCatalogSync": false,
      "configuration": {
        "catalogKinds": [
          "osdu:wks:master-data--Well:*"
        ]
      },
      "historicalSnapshotStatus": "PROCESSING",
      "createdTs": "2026-03-31T10:00:00Z",
      "updatedTs": "2026-03-31T10:00:00Z",
      "createdBy": "user@contoso.com"
    },
    {
      "aczId": "acz-xyz789ghi012",
      "name": "all-catalog-sync-example",
      "status": "ACTIVE",
      "aczType": "LATEST_VERSION",
      "targetFormat": "DELTA_PARQUET",
      "sink": {
        "storageType": "microsoft.storage/storageaccounts",
        "storageId": "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{account}",
        "basePath": "acz-output"
      },
      "allCatalogSync": true,
      "configuration": {
        "wellboreDDMSKinds": [
          "osdu:wks:work-product-component--WellLog:*"
        ]
      },
      "historicalSnapshotStatus": "COMPLETED",
      "createdTs": "2026-03-31T09:00:00Z",
      "updatedTs": "2026-03-31T09:45:00Z",
      "createdBy": "user@contoso.com"
    }
  ],
  "count": 2
}

A resposta lista todas as instâncias ACZ em qualquer estado: ACTIVE, FAILED, ou ACCESS_DENIED. Esta resposta mostra duas instâncias ACZ: uma usando sincronização seletiva de catálogo (allCatalogSync: false com tipos específicos) e outra usada allCatalogSync: true para exportar todos os tipos de catálogo.

Obtenha os detalhes da ACZ

Use a API Get ACZ para obter detalhes de uma instância ACZ específica.

API

GET /api/acz/v1/aczs/{acz-id}

# Get auth app ID for your Azure Data Manager for Energy instance
AUTH_APP_ID=$(az resource show --ids /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.OpenEnergyPlatform/energyServices/{adme-instance-name} --query properties.authAppId -o tsv)

# Get access token
TOKEN=$(az account get-access-token --resource $AUTH_APP_ID --query accessToken -o tsv)

# Get ACZ details
curl --request GET \
  --url https://{base-url}/api/acz/v1/aczs/{acz-id} \
  --header "Authorization: Bearer $TOKEN" \
  --header 'Accept: application/json' \
  --header 'data-partition-id: {data-partition-id}'

Substitua os marcadores

Placeholder Description
{subscription-id} ID de subscrição onde reside o seu Azure Data Manager para a instância de Energia.
{resource-group} Grupo de recursos que contém a sua instância Azure Data Manager for Energy.
{adme-instance-name} O nome da instância do Azure Data Manager for Energy.
{base-url} A URL da sua instância Azure Data Manager for Energy (por exemplo, myinstance.energy.azure.com).
{data-partition-id} O ID da sua partição de dados (por exemplo, opendes).
{acz-id} Identificador ACZ a partir da resposta Criar ou Listar (por exemplo, acz-abc123def456).

Resposta de exemplo (200 OK)

{
  "aczId": "acz-abc123def456",
  "name": "my-acz-wells-and-logs",
  "status": "ACTIVE",
  "aczType": "LATEST_VERSION",
  "targetFormat": "DELTA_PARQUET",
  "sink": {
    "storageType": "microsoft.storage/storageaccounts",
    "storageId": "/subscriptions/{sub-id}/resourceGroups/{rg}/providers/Microsoft.Storage/storageAccounts/{account}",
    "basePath": "acz-output"
  },
  "allCatalogSync": false,
  "configuration": {
    "catalogKinds": [
      "osdu:wks:master-data--Well:*",
      "osdu:wks:reference-data--UnitOfMeasure:*"
    ],
    "wellboreDDMSKinds": [
      "osdu:wks:work-product-component--WellLog:*"
    ]
  },
  "historicalSnapshotStatus": "COMPLETED",
  "createdTs": "2026-03-31T10:00:00Z",
  "updatedTs": "2026-03-31T10:30:00Z",
  "createdBy": "user@contoso.com"
}

Para acompanhar o provisionamento do ACZ, verifique os campos status e historicalSnapshotStatus.

Eliminar uma instância ACZ

Use a API Delete ACZ para remover uma configuração ACZ.

API

DELETE /api/acz/v1/aczs/{acz-id}

Warning

Esta ação de apagar não pode ser desfeita. Remove toda a configuração do ACZ e interrompe a sincronização. Os dados já presentes na conta de armazenamento Data Lake Storage Gen2 de destino mantêm-se intactos.

# Get auth app ID for your Azure Data Manager for Energy instance
AUTH_APP_ID=$(az resource show --ids /subscriptions/{subscription-id}/resourceGroups/{resource-group}/providers/Microsoft.OpenEnergyPlatform/energyServices/{adme-instance-name} --query properties.authAppId -o tsv)

# Get access token
TOKEN=$(az account get-access-token --resource $AUTH_APP_ID --query accessToken -o tsv)

# Delete ACZ instance
curl --request DELETE \
  --url https://{base-url}/api/acz/v1/aczs/{acz-id} \
  --header "Authorization: Bearer $TOKEN" \
  --header 'Accept: application/json' \
  --header 'data-partition-id: {data-partition-id}'

Substitua os marcadores

Placeholder Description
{subscription-id} ID de subscrição onde reside o seu Azure Data Manager para a instância de Energia.
{resource-group} Grupo de recursos que contém a sua instância Azure Data Manager for Energy.
{adme-instance-name} O nome da instância do Azure Data Manager for Energy.
{base-url} A URL da sua instância Azure Data Manager for Energy (por exemplo, myinstance.energy.azure.com).
{data-partition-id} O ID da sua partição de dados (por exemplo, opendes).
{acz-id} Identificador ACZ a partir da resposta Criar ou Listar (por exemplo, acz-abc123def456).

Resposta de exemplo (204 Sem Conteúdo)

Uma eliminação bem-sucedida devolve HTTP 204 sem corpo de resposta. O estado ACZ altera-se para DELETING enquanto decorre a limpeza.

Respostas de erro

As APIs ACZ devolvem os seguintes códigos de erro.

Estado HTTP Description
400 Pedido inválido. Verifique o corpo do pedido para erros de validação.
401 Não autorizado. O token de portador está em falta ou não é válido.
403 Proibido. O utilizador não pertence ao grupo de direitos obrigatórios.
404 Não encontrado. O ID ACZ especificado não existe.
422 A validação falhou. O corpo do pedido tem valores que não são válidos.
500 Erro de servidor interno. Contacte o suporte se este erro persistir.