Общедоступный REST API конвейера данных Microsoft Fabric (предварительная версия)
Внимание
API Microsoft Fabric для фабрики данных в настоящее время находится в общедоступной предварительной версии. Эта информация относится к предварительному продукту, который может быть существенно изменен до выпуска. Корпорация Майкрософт не дает явных или подразумеваемых гарантий относительно предоставленных здесь сведений.
В Microsoft Fabric API фабрики данных состоят исключительно из операций CRUD для конвейеров и потоков данных. В настоящее время поддерживаются только конвейеры данных. API потоков данных будут выпущены позже. Другие распространенные области для проектов интеграции данных находятся в отдельных API: расписания, мониторинг, подключения, имеют собственные API в Fabric. Основная справочная документация по REST API Microsoft Fabric см. в справочниках по REST API Microsoft Fabric. Также обратитесь к API основных элементов и планировщику заданий.
Получение маркера авторизации
Вариант 1. Использование MSAL.Net
Краткое руководство по API Fabric — REST API Microsoft Fabric
Используйте MSAL.Net для получения маркера идентификатора Microsoft Entra для службы Fabric со следующими областями: Workspace.ReadWrite.All, Item.ReadWrite.All. Дополнительные сведения о приобретении токенов с MSAL.Net см. в статье "Приобретение маркеров" — библиотека проверки подлинности Майкрософт для .NET.
Вставьте идентификатор приложения (клиента), скопированный ранее, и вставьте его для переменной ClientId.
Вариант 2. Использование портала Fabric
Войдите на портал Fabric для клиента, на который вы хотите протестировать, и нажмите клавишу F12, чтобы войти в режим разработчика браузера. В консоли выполните следующие действия:
powerBIAccessToken
Скопируйте маркер и вставьте его для переменной ClientId.
Определение элемента с закодированными полезными данными base64
- Для кодирования JSON используйте кодировку Base64 и декодирование .
- Убедитесь, что флажок безопасного кодирования URL-адреса не установлен.
- Определения конвейера можно получить с помощью вкладки "Вид кода JSON-> Просмотр кода JSON" в пользовательском интерфейсе 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"
}
}
Возьмите объект свойств и окружите их в фигурных скобках { } - поэтому полезные данные определения элемента REST будут:
{
"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"
}
}
Создать элемент
REST API — элементы — создание элемента
Пример:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Текст:
{
"displayName": "pipeline_1",
"type": "DataPipeline"
}
Примечание.
В документации указано, что есть только 2 обязательных свойства — displayName и type. В настоящее время рабочая нагрузка-DI не поддерживает создание без определения . Исправление для этого ошибочного требования в настоящее время развертывается. Теперь можно отправить то же определение по умолчанию, используемое пользовательским интерфейсом Fabric: ‘{"properties":{"activities":[]}}’
Изменен JSON, включая определение:
{
"displayName": "pipeline_1",
"type": "DataPipeline",
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Ответ 201:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"description": "",
"workspaceId": "<Your WS Id>"
}
Удаление элемента
REST API — элементы — удаление элемента
Пример:
DELETE https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Ответ 200: (без текста)
Get item (Получение элемента)
REST API — элементы — получение элемента
Пример:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Ответ 200:
{
"id": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx",
"type": "DataPipeline",
"displayName": "Pipeline_1",
"workspaceId": "<your WS Id>"
}
Получение определения элемента
REST API — элементы — получение определения элемента
Пример:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/getDefinition
Ответ 200:
{
"definition": {
"parts":[
{
"path": "pipeline-content.json",
"payload": "ewogICJwcm9wZXJ0aWVzIjogewogICAgImFjdGl2aXRpZXMiOiBbXQogIH0KfQ==",
"payloadType": "InlineBase64"
}
]
}
}
Элементы списка
Пример:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items
Ответ 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"
}
]
}
Обновление элемента
REST API — элементы — обновление элемента
Пример:
PATCH https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>
Текст:
{
"displayName": "Pipeline_1_updated",
"description": "This is the description."
}
Ответ 200:
{
"id": "<pipeline id>",
"type": "DataPipeline",
"displayName": "Pipeline_1_updated",
"description": "This is the description.",
"workspaceId": "<Your WS id>"
}
Обновление определения элемента
REST API — элементы — обновление определения элементов
Пример:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/updateDefinition
Текст:
{
"definition": {
"parts": [
{
"path": "pipeline-content.json",
"payload": "eyJwcm9wZXJ0aWVzIjp7ImFjdGl2aXRpZXMiOltdfX0=",
"payloadType": "InlineBase64"
}
]
}
}
Ответ 200: (без текста)
Выполнение задания элемента по запросу
REST API — элементы — выполнение задания элемента по запросу
Пример:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Ответ 202: (без текста)
Пример с двумя значениями параметров:
Здесь у нас есть действие Wait с параметром с именем param_waitsec, чтобы указать количество секунд для ожидания.
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances?jobType=Pipeline
Текст:
{
"executionData": {
"parameters": {
"param_waitsec": "10"
}
}
}
Ответ 202: (без текста)
Примечание.
В настоящее время нет возвращаемого текста, но идентификатор задания должен быть возвращен. Во время предварительной версии его можно найти в возвращаемых заголовках в свойстве Location.
Получение экземпляра задания элемента
REST API — элементы — получение экземпляра задания элемента
Пример:
GET https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>
Ответ 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"
}
Отмена экземпляра задания элемента
REST API — элементы — экземпляр задания отмены
Пример:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/items/<pipeline id>/jobs/instances/<job ID>/cancel
Ответ 202: (без текста)
Примечание.
После отмены задания можно проверить состояние, вызвав экземпляр задания Get item или просмотрев журнал выполнения представления в пользовательском интерфейсе Fabric.
Выполнение действия запроса
Пример:
POST https://api.fabric.microsoft.com/v1/workspaces/<your WS Id>/datapipelines/pipelineruns/<job id>/queryactivityruns
Текст:
{
"filters":[],
"orderBy":[{"orderBy":"ActivityRunStart","order":"DESC"}],
"lastUpdatedAfter":"2024-05-22T14:02:04.1423888Z",
"lastUpdatedBefore":"2024-05-24T13:21:27.738Z"
}
Примечание.
"Идентификатор задания" — это тот же идентификатор, который создан и используется в общедоступных API планировщика заданий
Ответ 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"
}
]
Известные ограничения
- Проверка подлинности субъекта-службы (SPN) в настоящее время не поддерживается.