Tutoriel : utiliser les API de la zone de consommation Analytics

Ce tutoriel montre comment utiliser les API de gestion de la zone de consommation Analytics (ACZ) dans Azure Data Manager for Energy. Vous créez, listez, récupérez et supprimez des instances ACZ à l’aide de cURL.

Important

Analytics Consumption Zone est actuellement en version préliminaire. Pour connaître les conditions légales applicables aux fonctionnalités Azure en version bêta, en préversion ou pas encore en disponibilité générale, consultez les Conditions d’utilisation supplémentaires pour les préversions de Microsoft Azure.

Pendant la préversion, ACZ est disponible uniquement sur les instances de niveau Développeur et nécessite l’utilisation de listes autorisées. Suivez les instructions fournies dans Enable Analytics Consumption Zone et contactez votre représentant Microsoft.

Dans ce tutoriel, vous allez apprendre à :

  • Créez une instance ACZ.
  • Répertorier toutes les instances ACZ dans une partition de données.
  • Obtenez les détails d’une instance ACZ spécifique.
  • Supprimez une instance ACZ.

Prerequisites

Tip

Explorez l’API de manière interactive : Vous pouvez afficher la spécification complète de l’API ACZ et les points de terminaison de test à l’aide de l’interface utilisateur Swagger à l’adresse https://{instance-name}.energy.azure.com/api/acz/v1/docs. Remplacez {instance-name} par le nom de votre Azure Data Manager pour l’instance Energy.

Obtenez les détails de votre Azure Data Manager pour l’instance Energy

Rassemblez ces détails à partir de votre instance Azure Data Manager for Energy dans le portail Azure.

Avant de commencer

Les exemples de code de ce tutoriel utilisent des valeurs fictives au format {curly-braces}. Remplacez ces espaces réservés par vos valeurs réelles lorsque vous exécutez les commandes.

Tous les appels d’API nécessitent une authentification. Les exemples Bash et PowerShell montrent la génération de jetons inline à l’aide de la Azure CLI. Pour obtenir d’autres méthodes d’authentification, consultez Générer un jeton d’authentification.

Créer une instance ACZ

Utilisez l’API Create ACZ pour configurer une nouvelle instance ACZ pour une partition de données.

API

POST /api/acz/v1/aczs

Points clés

  • Un maximum de trois instances ACZ par partition de données (limite d’aperçu).
  • Le nom ACZ doit être unique dans la partition.
  • L’identité managée attribuée par l’utilisateur doit être :
    • Attribué à votre ressource Azure Data Manager for Energy (voir Activer la zone de consommation Analytics).
    • Accordé au rôle Contributeur aux données Blob de stockage sur le compte de stockage Azure Data Lake Storage Gen2 de destination.
  • Un compte de stockage Data Lake Storage Gen2 avec un espace de noms hiérarchique activé est requis.
# 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}"]
    }
  }'

Remplacez les espaces réservés

Espace réservé Description
{subscription-id} ID d’abonnement où réside votre Azure Data Manager pour l’instance Energy.
{resource-group} Groupe de ressources qui contient votre Azure Data Manager pour l’instance Energy.
{adme-instance-name} Nom de l’instance Data Manager for Energy de votre Azure.
{base-url} URL de votre instance Azure Data Manager for Energy (par exemple, myinstance.energy.azure.com).
{data-partition-id} VOTRE ID de partition de données (par exemple, opendes).
{acz-name} Nom complet de l’instance ACZ (1 à 100 caractères, par exemple). my-acz-wells-and-logs
{acz-type} Facultatif : LATEST_VERSION (valeur par défaut) exporte uniquement la dernière version et ALL_VERSIONS exporte toutes les versions.
{storage-resource-id} Azure ID de ressource du compte de stockage Data Lake Storage Gen2 de destination (par exemple). /subscriptions/xxx.../storageAccounts/mystorageacct
{base-path} Facultatif : chemin d’accès de base dans le compte de stockage pour la sortie des données ACZ (par exemple, acz-output).
allCatalogSync Facultatif (valeur par défaut : false). Lorsqu’il est défini sur true, exporte tous les types de catalogues de la partition. Spécifié en dehors de la section configuration. Quand true, catalogKinds et wellboreDDMSKinds dans la configuration sont ignorés pour les données de catalogue.
{catalog-kinds} Facultatif : chaînes de type catalogue OSDU® à synchroniser (par exemple, ["osdu:wks:master-data--Well:*"]). Ignoré si allCatalogSync c’est true.
{wellbore-ddms-kinds} Facultatif : chaînes de type du service de gestion des données du domaine Wellbore (DDMS) à synchroniser (par exemple, ["osdu:wks:work-product-component--WellLog:*"]). Les téléchargements de fichiers se produisent uniquement pour les types répertoriés ici.

Tip

Exportez toutes les données de catalogue : Définissez "allCatalogSync": true (en dehors de la configuration section) pour exporter tous les types de catalogue à partir de votre partition de données. Lorsque cette option est activée, les catalogKindswellboreDDMSKinds tableaux de configuration sont ignorés pour les données du catalogue. Les téléchargements de fichiers en bloc DDMS Wellbore se produisent toujours uniquement pour les types répertoriés dans wellboreDDMSKinds.

Vous devez fournir au moins l’une des options suivantes :

  • Définir "allCatalogSync": true (en dehors de la configuration).
  • Fournir un tableau catalogKinds dans la configuration avec au moins un modèle de type.
  • Indiquez un tableau wellboreDDMSKinds dans la configuration, avec au moins un motif de type.

Exemple de réponse (201 Créé)

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

Après avoir créé l’instance ACZ, elle commence l’instantané historique avec l’état PROCESSING. Utilisez l’API Get ACZ pour vérifier l’état.

Répertorier les instances ACZ

Utilisez l’API List ACZs pour obtenir toutes les instances ACZ dans une partition de données.

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

Remplacez les espaces réservés

Espace réservé Description
{subscription-id} ID d’abonnement où réside votre Azure Data Manager pour l’instance Energy.
{resource-group} Groupe de ressources qui contient votre Azure Data Manager pour l’instance Energy.
{adme-instance-name} Nom de l’instance Data Manager for Energy de votre Azure.
{base-url} URL de votre instance Azure Data Manager for Energy (par exemple, myinstance.energy.azure.com).
{data-partition-id} VOTRE ID de partition de données (par exemple, opendes).

Exemple de réponse (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
}

La réponse répertorie toutes les instances ACZ dans n’importe quel état : ACTIVE, FAILEDou ACCESS_DENIED. Cette réponse montre deux instances ACZ : l’une utilisant la synchronisation sélective du catalogue (allCatalogSync: false avec des types de catalogue spécifiques) et une autre utilisant allCatalogSync: true pour exporter tous les types de catalogue.

Obtenir les détails d’ACZ

Utilisez l’API Get ACZ pour obtenir des détails pour une instance ACZ spécifique.

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

Remplacez les espaces réservés

Espace réservé Description
{subscription-id} ID d’abonnement où réside votre Azure Data Manager pour l’instance Energy.
{resource-group} Groupe de ressources qui contient votre Azure Data Manager pour l’instance Energy.
{adme-instance-name} Nom de l’instance Data Manager for Energy de votre Azure.
{base-url} L’URL de votre instance Azure Data Manager for Energy (par exemple, myinstance.energy.azure.com).
{data-partition-id} VOTRE ID de partition de données (par exemple, opendes).
{acz-id} Identificateur ACZ issu de la réponse Créer ou Lister (par exemple, acz-abc123def456).

Exemple de réponse (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"
}

Pour suivre l’approvisionnement ACZ, vérifiez les champs status et historicalSnapshotStatus.

Supprimer une instance ACZ

Utilisez l’API Delete ACZ pour supprimer une configuration ACZ.

API

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

Avertissement

Cette action de suppression ne peut pas être annulée. Elle supprime toute configuration ACZ et arrête la synchronisation. Les données déjà dans la destination Data Lake Storage Gen2 compte de stockage restent intactes.

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

Remplacez les espaces réservés

Espace réservé Description
{subscription-id} ID d’abonnement où réside votre Azure Data Manager pour l’instance Energy.
{resource-group} Groupe de ressources qui contient votre Azure Data Manager pour l’instance Energy.
{adme-instance-name} Nom de l’instance Data Manager for Energy de votre Azure.
{base-url} L’URL de votre instance Azure Data Manager for Energy (par exemple, myinstance.energy.azure.com).
{data-partition-id} VOTRE ID de partition de données (par exemple, opendes).
{acz-id} Identificateur ACZ issu de la réponse de création ou de liste (par exemple, acz-abc123def456).

Exemple de réponse (204 Aucun contenu)

Une suppression réussie retourne HTTP 204 sans corps de réponse. L’état ACZ passe à DELETING pendant le nettoyage.

Réponses d’erreur

Les API ACZ retournent les codes d’erreur suivants.

État HTTP Description
400 Demande incorrecte Vérifiez le corps de la demande pour connaître les erreurs de validation.
401 Non autorisé. Le jeton Bearer est manquant ou invalide.
403 Interdit. L’utilisateur n’appartient pas au groupe de droits requis.
404 Introuvable. L’ID ACZ spécifié n’existe pas.
422 Échec de la validation. Le corps de la requête a des valeurs qui ne sont pas valides.
500 Erreur interne du serveur. Contactez le support technique si cette erreur persiste.