Freigeben über


Ö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.