API REST pubblica della pipeline di dati di Microsoft Fabric (anteprima)

Importante

L'API Di Microsoft Fabric per Data Factory è attualmente in anteprima pubblica. Queste informazioni sono relative alla versione non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non fornisce alcuna garanzia, esplicita o implicita, in relazione alle informazioni contenute in questo documento.

In Microsoft Fabric le API di Data Factory sono costituite esclusivamente da operazioni CRUD per pipeline e flussi di dati. Attualmente, sono supportate solo le pipeline di inferenza batch. Le API dei flussi di dati verranno rilasciate in un secondo momento. Altre aree comuni per i progetti di integrazione dei dati si trovano in API separate: pianificazioni, monitoraggio, connessioni, hanno le proprie API in Fabric. La documentazione di riferimento online principale per le API REST di Microsoft Fabric è disponibile nelle informazioni di riferimento sulle API REST di Microsoft Fabric. Vedere anche Elementi di base della memoria centrale di API e l’utilità di programmazione processi.

Ottenere un codice di autorizzazione

Opzione 1: Uso di MSAL.Net

Guida introduttiva all'API fabric - API REST di Microsoft Fabric

Usare MSAL.Net per acquisire un token ID Microsoft Entra per il servizio Fabric con gli ambiti seguenti: Workspace.ReadWrite.All, Item.ReadWrite.All. Per altre informazioni sull'acquisizione di token con MSAL.Net a, vedere Acquisizione di token - Microsoft Authentication Library per .NET.

Incollare l'ID applicazione (client) copiato in precedenza e incollarlo per la variabile ClientId.

Opzione 2: Uso del portale di Azure

Accedere al portale di Infrastruttura per il tenant su cui si vuole eseguire il test e premere F12 per accedere alla modalità sviluppatore del browser. Nella console eseguire:

powerBIAccessToken

Copiare il token e incollarlo per la variabile ClientId.

Definizione dell'elemento con codifica base64 del payload

  • Usare Codifica e decodifica Base64 per codificare il codice JSON.
  • Assicurarsi che la casella Esegui codifica sicura URL non sia selezionata.
  • È possibile ottenere le definizioni della pipeline tramite la scheda Visualizza -->Visualizza codice JSON nell'interfaccia utente di Fabric.
{ 
    "name": "Pipeline_1_updated", 
    "objectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
    "properties": { 
        "description": "this is the description", 
        "activities": [ 
            { 
                "name": "Wait1", 
                "type": "Wait", 
                "dependsOn": [], 
                "typeProperties": { 
                    "waitTimeInSeconds": 240 
                } 
            } 
        ], 
        "annotations": [], 
        "lastModifiedByObjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
        "lastPublishTime": "2024-02-01T17:28:02Z" 
    } 
}

Prendere l'oggetto properties e racchiuderli tra parentesi graffe - { } - in modo che il payload della definizione dell'elemento REST sia:

{
    "properties": { 
        "description": "this is the description", 
        "activities": [ 
            { 
                "name": "Wait1", 
                "type": "Wait", 
                "dependsOn": [], 
                "typeProperties": { 
                    "waitTimeInSeconds": 240 
                } 
            } 
        ], 
        "annotations": [], 
        "lastModifiedByObjectId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
        "lastPublishTime": "2024-02-01T17:28:02Z" 
    } 
} 

Creare elemento

API REST - Elementi - Creare un elemento

Esempio:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items

Corpo:

{ 
  "displayName": "pipeline_1", 
  "type": "DataPipeline" 
} 

Nota

La documentazione indica che sono presenti solo due proprietà obbligatorie: displayName e tipo. Attualmente, Workload-DI non supporta anche la creazione senza una definizione. La correzione per questo requisito errato è attualmente in fase di distribuzione. Per il momento, è possibile inviare la stessa definizione predefinita usata dall'interfaccia utente di Fabric: ‘{"properties":{"activities":[]}}’

JSON modificato, inclusa la definizione:

{ 
  "displayName": "pipeline_1", 
  "type": "DataPipeline", 
  "definition": { 
    "parts": [ 
      { 
        "path": "pipeline-content.json", 
        "payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=", 
        "payloadType": "InlineBase64" 
      } 
    ] 
  } 
} 

Risposta 201:

{ 
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
    "type": "DataPipeline", 
    "displayName": "Pipeline_1", 
    "description": "", 
    "workspaceId": "<Your WS Id>" 
} 

Elimina elemento

API REST - Elementi - Elimina elemento

Esempio:

DELETE https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>

Risposta 200: (Nessun corpo)

Ottieni elemento

API REST - Elementi - Ottenere un elemento

Esempio:

GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>

Risposta 200:

{ 
    "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
    "type": "DataPipeline", 
    "displayName": "Pipeline_1", 
    "workspaceId": "<your WS Id>" 
} 

Ottenere la definizione del ruolo

API REST - Elementi - Ottenere la definizione dell'elemento

Esempio:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/getDefinition

Risposta 200:

{ 
    "definition": { 
        "parts":[ 
            { 
                "path": "pipeline-content.json", 
                "payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==", 
                "payloadType": "InlineBase64" 
            } 
        ] 
    } 
} 

Elencare elementi

API REST - Elementi - Elementi dell'elenco

Esempio:

GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items

Risposta 200:

{ 
    "value": [ 
        { 
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "type": "SemanticModel", 
            "displayName": "deata_lh", 
            "description": "", 
            "workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        }, 
        { 
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "type": "SQLEndpoint", 
            "displayName": "deata_lh", 
            "description": "", 
            "workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        }, 
        { 
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "type": "Lakehouse", 
            "displayName": "deata_lh", 
            "description": "", 
            "workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        }, 
        { 
            "id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", 
            "type": "DataPipeline", 
            "displayName": "Pipeline_1", 
            "description": "", 
            "workspaceId": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" 
        } 
    ] 
} 

Aggiorna elemento

API REST - Elementi - Elemento di aggiornamento

Esempio:

PATCH https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>

Corpo:

{ 
  "displayName": "Pipeline_1_updated", 
  "description": "This is the description." 
}

Risposta 200:

{ 
    "id": "<pipeline id>", 
    "type": "DataPipeline", 
    "displayName": "Pipeline_1_updated", 
    "description": "This is the description.", 
    "workspaceId": "<Your WS id>" 
}

Definizione di elemento

API REST - Elementi - Aggiornare la definizione dell'elemento

Esempio:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/updateDefinition

Corpo:

{ 
  "definition": { 
    "parts": [ 
      { 
        "path": "pipeline-content.json", 
        "payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=", 
        "payloadType": "InlineBase64" 
      } 
    ] 
  } 
}

Risposta 200: (Nessun corpo)

Eseguire un processo di elemento su richiesta

API REST - Elementi - Eseguire un processo di elemento su richiesta

Esempio:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline

Risposta 202: (Nessun corpo)

Esempio con due valori di parametro:

Qui è disponibile un'attività Wait con un parametro denominato param_waitsec per specificare il numero di secondi di attesa.

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline

Corpo:

{ 
  "executionData": { 
    "parameters": {
      "param_waitsec": "10" 
    } 
  } 
}

Risposta 202: (Nessun corpo)

Nota

Attualmente non viene restituito alcun corpo, ma l'ID processo deve essere restituito. Durante l'anteprima, è disponibile nelle intestazioni restituite, nella proprietà 'Location'.

Ottenere l'istanza del processo dell'elemento

API REST - Elementi - Ottenere l'istanza del processo dell'elemento

Esempio:

GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>

Risposta 200:

{ 
    "id": "4511ffcd-a9f6-4f75-91a9-9ceab08d7539", 
    "itemId": "2bb9fe4a-0a84-4725-a01f-7ac4e6850259", 
    "jobType": "Pipeline", 
    "invokeType": "Manual", 
    "status": "Completed", 
    "failureReason": null, 
    "rootActivityId": "f14bdd95-2cff-4451-b839-bea81509126d", 
    "startTimeUtc": "2024-02-01T03:03:19.8361605", 
    "endTimeUtc": "2024-02-01T03:05:00.3433333" 
} 

Annullare l'istanza del processo dell'elemento

API REST - Elementi - Annullare l'istanza del processo dell'elemento

Esempio:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>/cancel

Risposta 202: (Nessun corpo)

Nota

Dopo aver annullato un processo, è possibile controllare lo stato chiamando l'istanza del processo Get item o esaminando la cronologia di esecuzione Visualizza nell'interfaccia utente di Fabric.

Eseguire query nei log attività

Esempio:

POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/datapipelines/pipelineruns/<job id>/queryactivityruns

Corpo:

{
  "filters":[],
  "orderBy":[{"orderBy":"ActivityRunStart","order":"DESC"}],
  "lastUpdatedAfter":"2024-05-22T14:02:04.1423888Z",
  "lastUpdatedBefore":"2024-05-24T13:21:27.738Z"
}

Nota

"id processo" è lo stesso ID creato e usato nelle API pubbliche dell'utilità di programmazione processi

Risposta 200:

[
    {
        "pipelineName": "ca91f97e-5bdd-4fe1-b39a-1f134f26a701",
        "pipelineRunId": "f2fa7a0e-586d-4d73-a2b4-7ddc785243ae",
        "activityName": "Wait1",
        "activityType": "Wait",
        "activityRunId": "ef579d3d-d23e-477a-8150-d6e15d66a532",
        "linkedServiceName": "",
        "status": "Succeeded",
        "activityRunStart": "2024-05-23T13:43:03.6397566Z",
        "activityRunEnd": "2024-05-23T13:43:31.3906179Z",
        "durationInMs": 27750,
        "input": {
            "waitTimeInSeconds": 27
        },
        "output": {},
        "error": {
            "errorCode": "",
            "message": "",
            "failureType": "",
            "target": "Wait1",
            "details": ""
        },
        "retryAttempt": null,
        "iterationHash": "",
        "userProperties": {},
        "recoveryStatus": "None",
        "integrationRuntimeNames": null,
        "executionDetails": null,
        "id": "/SUBSCRIPTIONS/4DA86268-68B8-4B08-AD58-A7AEE54138CD/RESOURCEGROUPS/4DA86268-68B8-4B08-AD58-A7AEE54138CD/PROVIDERS/MICROSOFT.TRIDENT/WORKSPACES/4DA86268-68B8-4B08-AD58-A7AEE54138CD/pipelineruns/f2fa7a0e-586d-4d73-a2b4-7ddc785243ae/activityruns/ef579d3d-d23e-477a-8150-d6e15d66a532"
    }
]

Limitazioni note

  • L'autenticazione dell'entità servizio (SPN) non è attualmente supportata.