Öffentliche REST-API für eine Microsoft Fabric-Datenpipeline (Vorschau)
Wichtig
Die Microsoft Fabric API für Data Factory befindet sich derzeit in der öffentlichen Vorschau. Diese Informationen beziehen sich auf eine Vorabversion des Produkts, an der vor der Veröffentlichung noch wesentliche Änderungen vorgenommen werden können. Microsoft übernimmt keine Garantie, weder ausdrücklich noch stillschweigend, für die hier bereitgestellten Informationen.
In Microsoft Fabric bestehen Data Factory-APIs ausschließlich aus CRUD-Vorgängen für Pipelines und Dataflows. Aktuell werden nur Daten-Pipelines unterstützt. Dataflow-APIs werden später veröffentlicht werden. Andere gängige Bereiche für Datenintegrationsprojekte befinden sich in separaten APIs: Zeitpläne, Überwachung und Verbindungen verfügen über eigene APIs in Fabric. Die primäre Online-Referenzdokumentation für Microsoft Fabric-REST-APIs finden Sie in Microsoft Fabric-REST-API-Referenzen. Weitere Informationen finden Sie unter Kernelemente-API und Job Scheduler.
Einbinden öffentlicher APIs
Die öffentlichen Montage-APIs sind jetzt verfügbar. Mit diesen APIs können Sie verschiedene öffentliche Datenquellen nahtlos in Ihre Datenpipeline integrieren und darauf zugreifen.
So rufen Sie ein Autorisierungstoken ab
Option 1: Mithilfe von MSAL.Net
Fabric-API-Schnellstart – Microsoft Fabric-REST-APIs
Verwenden Sie MSAL.Net, um ein Microsoft Entra ID-Token für Fabric-Dienste mit den folgenden Geltungsbereichen abzurufen: Workspace.ReadWrite.All, Item.ReadWrite.All. Weitere Informationen zum Tokenerwerb mithilfe von MSAL.Net finden Sie unter Tokenerwerb – Microsoft Authentication Library für .NET.
Fügen Sie die zuvor kopierte Anwendungs-ID (Client-ID) ein, und fügen Sie sie in die ClientId-Variable ein.
Option 2: Mithilfe des Fabric-Portals
Melden Sie sich beim Fabric-Portal für den Mandanten an, auf dem Sie testen möchten.. Drücken Sie F12, um den Entwicklermodus des Browsers aufzurufen. Führen Sie in der Konsole dort Folgendes aus:
powerBIAccessToken
Kopieren Sie das Token und fügen Sie es in die ClientId-Variable ein.
Artikeldefinition mit base64-codiertem Payload
- Verwenden Sie Base64-Codieren und -Decodieren, um Ihren JSON zu codieren.
- Achten Sie darauf, dass das Kästchen für eine URL-sichere Codierung nicht aktiviert ist.
- Sie können die Pipelinedefinitionen über die Registerkarte Ansicht -->JSON-Code anzeigen auf der Fabric-Benutzeroberfläche abrufen.
{
"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"
}
}
Setzen Sie das Eigenschaftenobjekt in geschweifte Klammern{ }, sodass der REST-Artikeldefinitions-Payload folgendermaßen lauten würde:
{
"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"
}
}
Create item (Element erstellen)
REST-API – Elemente – Element erstellen
Beispiel 1: CreateDataPipeline:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Text:
{
"displayName": "pipeline_1",
"type": "DataPipeline"
}
Hinweis
In der Dokumentation wird angegeben, dass nur zwei der erforderlichen Eigenschaften vorhanden sind – displayName und Typ. Derzeit unterstützt Workload-DI auch keine Erstellung ohne eine Definition. Die Korrektur dieser fehlerhaften Anforderung ist in Arbeit. Im Moment können Sie dieselbe Standarddefinition senden, die von der Fabric-Benutzeroberfläche verwendet wird: ‘{"properties":{"activities":[]}}’
Geänderter JSON einschließlich Definition:
{
"displayName": "pipeline_1",
"type": "DataPipeline",
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Antwort 201:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"description": "",
"workspaceId": "<Your WS Id>"
}
Beispiel 2: Erstellen einer MountedDataFactory
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Text:
Nutzlast:
{"DataFactoryResourceId":"/subscriptions/<ADF subscription Id>/resourceGroups/<ADF resource group name>/providers/Microsoft.DataFactory/factories/<ADF datafactory name>"}
JSON-Code:
{
"displayName": "pipeline_mdf",
"type": " MountedDataFactory ",
"definition": {
"parts": [
{
"path": "mountedDataFactory-content.json",
"payload": <base64 encoded value>,
"payloadType": "InlineBase64"
}
]
}
}
Antwort 201:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "MountedDataFactory",
"displayName": "Pipeline_mdf",
"description": "",
"workspaceId": "<Your WS Id>"
}
Delete item (Element löschen)
REST-API – Elemente – Element löschen
Beispiel:
DELETE https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Antwort 200: (Kein Textkörper)
Element abrufen
REST-API – Elemente – Element abrufen
Beispiel:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Antwort 200:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"workspaceId": "<your WS Id>"
}
Get item definition (Elementdefinition abrufen)
REST-API – Elemente – Elementdefinition abrufen
Beispiel:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/getDefinition
Antwort 200:
{
"definition": {
"parts":[
{
"path": "pipeline-content.json",
"payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==",
"payloadType": "InlineBase64"
}
]
}
}
Auflisten von -Elementen
REST-API – Elemente – Listenelemente
Beispiel:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Antwort 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"
}
]
}
Update item (Element aktualisieren)
REST-API – Elemente – Element aktualisieren
Beispiel:
PATCH https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Text:
{
"displayName": "Pipeline_1_updated",
"description": "This is the description."
}
Antwort 200:
{
"id": "<pipeline id>",
"type": "DataPipeline",
"displayName": "Pipeline_1_updated",
"description": "This is the description.",
"workspaceId": "<Your WS id>"
}
Update item definition
REST-API – Elemente – Elementdefinition aktualisieren
Beispiel:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/updateDefinition
Text:
{
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Antwort 200: (Kein Textkörper)
Run on demand Item Job (On-Demand-Elementauftrag ausführen)
REST-API – Elemente – On-Demand-Elementauftrag ausführen
Beispiel:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Antwort 202: (Kein Textkörper)
Beispiel mit zwei Parameterwerten:
Hier haben wir eine Wait-Aktivität mit einem Parameter namens param_waitsec, der die Anzahl der zu wartenden Sekunden angibt.
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Text:
{
"executionData": {
"parameters": {
"param_waitsec": "10"
}
}
}
Antwort 202: (Kein Textkörper)
Hinweis
Derzeit wird kein Text zurückgegeben. Die Auftrags-ID sollte aber zurückgegeben werden. Während der Vorschau finden Sie sie in den zurückgegebenen Headern in der Eigenschaft „Speicherort“.
Elementauftragsinstanz abrufen (Get item job instance)
REST-API – Elemente – Elementauftragsinstanz abrufen
Beispiel:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>
Antwort 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"
}
Elementauftragsinstanz abbrechen (Cancel Item Job Instance)
REST-API – Elemente – Elementauftragsinstanz abbrechen
Beispiel:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>/cancel
Antwort 202: (Kein Textkörper)
Hinweis
Nach dem Abbrechen eines Auftrags können Sie den Status überprüfen, indem Sie entweder Elementauftragsinstanz abrufen verwenden oder sich den Ansichtsausführungsverlauf in der Fabric-Benutzeroberfläche ansehen.
Abfragen von Aktivitätsausführungen
Beispiel:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/datapipelines/pipelineruns/<job id>/queryactivityruns
Text:
{
"filters":[],
"orderBy":[{"orderBy":"ActivityRunStart","order":"DESC"}],
"lastUpdatedAfter":"2024-05-22T14:02:04.1423888Z",
"lastUpdatedBefore":"2024-05-24T13:21:27.738Z"
}
Hinweis
"Auftrags-ID" ist die gleiche ID, die in den öffentlichen APIs des Auftragsplanungs-ApIs erstellt und verwendet wird.
Antwort 200:
[
{
"pipelineName": "ca91f97e-5bdd-4fe1-b39a-1f134f26a701",
"pipelineRunId": "bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f",
"activityName": "Wait1",
"activityType": "Wait",
"activityRunId": "cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a",
"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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/RESOURCEGROUPS/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/PROVIDERS/MICROSOFT.TRIDENT/WORKSPACES/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/pipelineruns/bbbb1b1b-cc2c-dd3d-ee4e-ffffff5f5f5f/activityruns/cccc2c2c-dd3d-ee4e-ff5f-aaaaaa6a6a6a"
}
]
Bekannte Einschränkungen
- Die Dienstprinzipal-Authentifizierung (SPN) wird derzeit nicht unterstützt.