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.