共用方式為


Fabric Data Factory 中管線的 REST API 功能

Fabric Data Factory 提供一組功能強大的 API,可讓您輕鬆地自動化及管理管線。 您可以連線到不同的數據源和服務,並使用幾行程式代碼來建置、更新或監視您的工作流程。 API 涵蓋從建立和編輯管線到排程和追蹤管線等所有專案,因此您可以順暢地讓數據流順暢地流動,而不需要麻煩。

管線的 API 使用案例

Fabric Data Factory 中管線的 API 可用於各種案例:

  • 自動化部署: 使用 CI/CD 實踐在不同環境(開發、測試、生產)之間自動部署管道。
  • 監控和警報:設定自動監控和警報系統來追蹤管道的狀態,並在發生故障或效能問題時接收通知。
  • 資料整合:將資料庫、資料湖、雲端服務等多個來源的資料整合到統一的管道中進行處理和分析。
  • 錯誤處理:實作自訂錯誤處理和重試機制,確保管道順利運作並從故障中復原。

瞭解 API

若要有效地使用 Fabric Data Factory 中管線的 API,請務必瞭解重要概念和元件:

  • 端點:API 端點提供各種管線作業的存取權,例如建立、更新和刪除管線。
  • 驗證:使用 OAuth 或 API 金鑰等驗證機制保護對 API 的存取。
  • 要求和回應:瞭解 API 要求和響應的結構,包括必要的參數和預期的輸出。
  • 速率限制:請注意 API 使用量所施加的速率限制,以避免超過允許的要求數目。

CRUD 支援

CRUD 代表 Create、Read、Update 和 Delete,這是可在數據上執行的四項基本作業。 在網狀架構 Data Factory 中,CRUD 作業可透過適用於 Data Factory 的網狀架構 API 來支援。 這些 API 可讓使用者以程式設計方式管理其管線。 以下是 CRUD 支援的一些重點:

  • 建立:使用 API 建立新的管線。 這包括定義管線結構、指定數據源、轉換和目的地。
  • 讀取:擷取現有管線的相關信息。 這包括其設定、狀態和執行歷程記錄的詳細數據。
  • 更新:更新現有的管線。 這可能涉及修改管線結構、變更數據源或更新轉換邏輯。
  • 刪除:刪除不再需要的管線。 這有助於管理和清除資源。

Microsoft網狀架構 REST API 的主要在線參考文件位於 Microsoft 網狀架構 REST API 檔中

開始使用管線的 REST API

下列範例示範如何使用 Fabric Data Factory API 來建立、更新及管理管線。

取得授權代幣

使用其他 REST API 之前,您需要有持有人令牌。

這很重要

在下列範例中,請確定 『Bearer』 一詞在存取令牌本身前面加上空格。 使用 API 用戶端並選取 [持有人令牌] 作為驗證類型時,系統會自動為您插入 'Bearer',而且只需要提供存取令牌。

選項 1:使用 MSAL.Net

請參閱網狀架構 API 快速入門的取得令牌一節,以取得 MSAL 授權令牌的範例。

使用 MSAL.Net 來為 Fabric 服務取得具有以下範圍的 Microsoft Entra ID 令牌:Workspace.ReadWrite.AllItem.ReadWrite.All。 如需有關使用 MSAL.Net 獲取令牌的更多資訊,請參閱 Token Acquisition - Microsoft Authentication Library for .NET

AccessToken 屬性複製令牌,並以令牌取代下列範例中的 <access-token> 佔位符。

選擇 2:使用 Fabric 平台入口網站

登入您要測試之租使用者的 Fabric 入口網站,然後按 F12 以進入瀏覽器的開發人員模式。 在控制台中,執行:

powerBIAccessToken

複製令牌,然後將下列範例中的<存取令牌>佔位元替換為該令牌。

建立管線

在指定的工作區中建立管線。

範例要求:

URI:POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items

標題:

{
  "Authorization": "Bearer <access-token>",
  "Content-Type": "application/json"
}

負載

{
  "displayName": "My pipeline",
  "description": "My pipeline description",
  "type": "DataPipeline"
}

範例回應

{
    "id": "<itemId>",
    "type": "pipeline",
    "displayName": "My pipeline",
    "description": "My pipeline description",
    "workspaceId": "<workspaceId>"
}

建立具有定義的管線

在指定的工作區中建立具有base64定義的管線。

範例要求:

URI:POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items

標題:

{
  "Authorization": "Bearer <access-token>",
  "Content-Type": "application/json"
}

負載

{
  "displayName": " My pipeline",
  "description": "My pipeline description",

  "type": "DataPipeline",
  "definition": { 
    "parts": [ 
      { 
        "path": "pipeline-content.json", 
        "payload": "<Your Base64 encoded JSON payload>"
        "payloadType": "InlineBase64" 
      } 
    ] 
  }
}

範例回應

{
    "id": "<Your itemId>",
    "type": "pipeline",
    "displayName": "My pipeline",
    "description": "My pipeline description",
    "workspaceId": "<Your workspaceId>"
}

取得管道

傳回指定管線的屬性。

範例要求:

URI:GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}

標題:

{
  "Authorization": "Bearer <access-token>"
}

範例回應

{
    "id": "<Your itemId>",
    "type": "pipeline",
    "displayName": "My pipeline",
    "description": "My pipeline description",
    "workspaceId": "<Your workspaceId>"
}

取得具有定義的管道

傳回管線項目定義。

範例要求:

URI:POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/getDefinition

標題:

{
  "Authorization": "Bearer <access-token>"
}

範例回應

{
    "definition": {
        "parts": [
            {
                "path": "pipeline-content.json",
                "payload": "<Base64 encoded payload>"
                "payloadType": "InlineBase64"
            },
            {
                "path": ".platform",
                "payload": "<Base64 encoded payload>",
                "payloadType": "InlineBase64"
            }
        ]
    }
}

更新工作流程

更新管道的屬性。

範例要求:

URI:PATCH https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}

標題:

{
  "Authorization": "Bearer <access-token>",
  "Content-Type": "application/json"
}

負載

{
  "displayName": "My pipeline updated",
  "description": "My pipeline description updated",
  "type": "DataPipeline"
}

範例回應

{
    "id": "<Your itemId>",
    "type": "pipeline",
    "displayName": "My pipeline updated",
    "description": "My pipeline description updated",
    "workspaceId": "<Your workspaceId>"
}

更新管線並使用定義

更新管線項目定義。

範例要求:

URI:POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/updateDefinition

標題:

{
  "Authorization": "Bearer <access-token>",
  "Content-Type": "application/json"
}

負載

{
  "displayName": " My pipeline ",
  "type": "DataPipeline",
  "definition": {
    "parts": [ 
      { 
        "path": "pipeline-content.json", 
        "payload": "<Your Base64 encoded payload>", 
        "payloadType": "InlineBase64" 
      }
    ]
  }
}

範例回應

200 OK

刪除管線

刪除指定的管線。

範例要求:

URI:DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}

標題:

{
  "Authorization": "Bearer <access-token>"
}

範例回應

200 OK

按需求執行管線任務

執行隨需的管線任務實例。

範例要求:

URI:POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/jobs/instances?jobType=Pipeline

標題:

{
  "Authorization": "Bearer <access-token>"
}

負載

{
    "executionData": {
        "pipelineName": "pipeline",
        "OwnerUserPrincipalName": "<user@domain.com>",
        "OwnerUserObjectId": "<Your ObjectId>"
    }
}

範例回應

202 Accepted

取得管道作業實例

取得單一管線的任務例項。

範例要求:

URI:GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/jobs/instances/{jobInstanceId}

標題:

{
  "Authorization": "Bearer <access-token>"
}

範例回應

{
  "id": "<id>",
  "itemId": "<itemId>",
  "jobType": "Pipeline",
  "invokeType": "Manual",
  "status": "Completed",
  "rootActivityId": "<rootActivityId>",
  "startTimeUtc": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
  "endTimeUtc": "YYYY-MM-DDTHH:mm:ss.xxxxxxx",
  "failureReason": null
}

排程管線

您也可以使用 API 以程式設計方式建立排程。 排程器 API 支援下列作業:

  • 取消管線工作執行個體
  • 建立管線排程
  • 刪除管線排程
  • 取得管線執行個體
  • 取得管線排程
  • 列出管線工作執行個體
  • 列出管線排程
  • 執行隨需管線任務
  • 更新管線排程

例如,您可以設定在 2025 年 5 月 27 日至 5 月 31 日期間,以中部標準時間每 10 分鐘執行一次的管線,而且該管線目前已啟用:

POST https://api.fabric.microsoft.com/v1/workspaces/<workspaceId>/items/<pipelineId>/jobs/<jobType>/schedules 

{ 
  "enabled": true, 
  "configuration": { 
    "startDateTime": "2025-05-27T00:00:00", 
    "endDateTime": "2025-05-31T23:59:00", 
    "localTimeZoneId": " Central Standard Time", 
    "type": "Cron", 
    "interval": 10 
  } 
} 
名稱 In 為必填項目 類型 Description Example
管道識別碼 路徑 字串 (guid) 管線識別碼 aaaa0000-bb11-2222-33cc-444444dddddd
jobType 路徑 繩子 工作類型 預設工作
workspaceId 路徑 繩子 工作區標識碼 aaaaaaaa-0000-1111-2222-bbbbbbbbbbbb

回應:

狀態碼:201

{ 
  "id": " eeeeeeee-4444-5555-6666-ffffffffffff", 
  "enabled": true, 
  "createdDateTime": "2025-05-27T05:35:20.5366667", 
  "configuration": { 
    "startDateTime": "2025-05-27T00:00:00", 
    "endDateTime": "2025-05-31T23:59:00", 
    "localTimeZoneId": "Central Standard Time", 
    "type": "Cron", 
    "interval": 10 
  }, 
  "owner": { 
    "id": " aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e", 
    "type": "User" 
  } 
} 

如需可用作業及其使用的詳細資訊,請參閱 Job Scheduler API 文件

取消流程任務實例

取消管道的工作實例。

範例要求:

URI:POST https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/items/{itemId}/jobs/instances/{jobInstanceId}/cancel

標題:

{
  "Authorization": "Bearer <access-token>"
}

範例回應

* 位置https://api.fabric.microsoft.com/v1/workspaces/<worksapceId>/items/<itemId>/jobs/instances/<jobInstanceId>重試後60

執行查詢活動

例:

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": "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"
    }
]

服務主體名稱 (SPN) 支援

服務主體名稱 (SPN) 是應用程式或服務用來存取特定資源的安全性身分識別功能。 在 Fabric Data Factory 中,SPN 支援對於實現數據來源的安全和自動化存取至關重要。 以下是SPN支援的一些重點:

  • 驗證:SPN 可用來在存取資料來源時驗證應用程式或服務。 這可確保只有授權的實體可以存取數據。
  • 設定:若要使用 SPNs,您必須在 Azure 中建立服務主體,並授與存取資料來源的必要許可權。 舉例來說,如果您正在使用資料湖,您的服務主體需要存取儲存Blob資料的讀取權限。
  • 連線:在 Fabric Data Factory 中設定資料連線時,您可以選擇使用服務主體進行身份驗證。 這牽涉到提供服務主體的租用戶標識碼、用戶端標識碼和客戶端密碼。
  • 安全性:使用 SPN 可避免在資料流中使用硬编码凭证,以增強安全性。 它也允許更妥善地管理訪問許可權和稽核存取活動。

如需更詳細的資訊來了解如何在 Fabric Data Factory 中設定和使用 SPN,請參閱資料工廠中的 SPN 支援

目前的限制

  • 工作限制:運行 API 可被調用,但實際運行從未成功(就像從用戶界面進行運行/刷新)。
  • 非 Power BI Fabric 專案:工作區必須位於支援 Fabric 容量的環境中。
  • 建立項目:使用 creationPayload 或定義,但不要同時使用兩者。

如需 Fabric Data Factory 中管線 REST API 的詳細資訊,請參閱下列內容:

文件

教學課程