다음을 통해 공유


Fabric Data Factory의 Apache Airflow 작업에 대한 REST API 기능

비고

Apache Airflow 작업은 Apache Airflow에서 구동됩니다.

Fabric Data Factory는 Apache Airflow 작업을 쉽게 자동화하고 관리할 수 있는 강력한 API 집합을 제공합니다. 여러 데이터 원본 및 서비스에 연결하고 몇 줄의 코드만으로 워크플로를 빌드, 업데이트 또는 모니터링할 수 있습니다. API는 Apache Airflow 작업 만들기 및 편집부터 추적에 이르기까지 모든 것을 다루므로 번거로움 없이 데이터가 원활하게 흐르는 것을 유지할 수 있습니다.

Apache Airflow 작업에 대한 API 사용 사례

Fabric Data Factory의 Apache Airflow 작업에 대한 API는 다음과 같은 다양한 시나리오에서 사용할 수 있습니다.

  • 자동화된 배포: CI/CD 사례를 사용하여 다양한 환경(개발, 테스트, 프로덕션)에서 Apache Airflow 작업의 배포를 자동화합니다.
  • 모니터링 및 경고: 자동화된 모니터링 및 경고 시스템을 설정하여 Apache Airflow 작업의 상태를 추적하고 오류 또는 성능 문제가 발생하는 경우 알림을 받습니다.
  • 오류 처리: 사용자 지정 오류 처리 및 재시도 메커니즘을 구현하여 Apache Airflow 작업이 원활하게 실행되고 오류로부터 복구되도록 합니다.

API 이해

패브릭 데이터 팩터리에서 Apache Airflow 작업용 API를 효과적으로 사용하려면 주요 개념과 구성 요소를 이해해야 합니다.

  • 엔드포인트: API 엔드포인트는 Apache Airflow 작업 만들기, 업데이트 및 삭제와 같은 다양한 Apache Airflow 작업 작업에 대한 액세스를 제공합니다.
  • 인증: OAuth 또는 API 키와 같은 인증 메커니즘을 사용하여 API에 대한 액세스를 보호합니다.
  • 요청 및 응답: 필요한 매개 변수 및 예상 출력을 포함하여 API 요청 및 응답의 구조를 이해합니다.
  • 속도 제한: 허용된 요청 수를 초과하지 않도록 API 사용량에 적용되는 속도 제한을 알고 있어야 합니다.

CRUD 지원

CRUD는 데이터에서 수행할 수 있는 네 가지 기본 작업인 만들기, 읽기, 업데이트 및 삭제를 의미합니다. Fabric Data Factory에서 CRUD 작업은 Data Factory용 패브릭 API를 통해 지원됩니다. 이러한 API를 사용하면 사용자가 Apache Airflow 작업을 프로그래밍 방식으로 관리할 수 있습니다. CRUD 지원에 대한 몇 가지 핵심 사항은 다음과 같습니다.

  • 만들기: API를 사용하여 새 Apache Airflow 작업을 만듭니다.
  • 읽기: 기존 Apache Airflow 작업에 대한 정보를 검색합니다.
  • 업데이트: 기존 Apache Airflow 작업을 업데이트합니다.
  • 삭제: 더 이상 필요하지 않은 Apache Airflow 작업을 삭제합니다.

Microsoft Fabric REST API에 대한 기본 온라인 참조 설명서는 Microsoft Fabric REST API 설명서에서 찾을 수 있습니다.

Apache Airflow 작업에서 제공되는 추가 API

CRUD API 외에도 Apache Airflow 작업에 대해 제공되는 일련의 추가 운영 API가 있습니다.

  • 작업 파일 관리 API

Apache Airflow 작업을 위한 REST API 시작하기

다음 설명서에서는 Fabric Data Factory API를 사용하여 Apache Airflow 작업 및 운영 사용 사례를 만들고, 업데이트하고, 관리하는 방법을 간략하게 설명합니다.

권한 부여 토큰 가져오기

다른 REST API를 사용하려면 전달자 토큰이 있어야 합니다.

중요합니다

다음 예제에서는 'Bearer'(공백 포함)라는 단어가 액세스 토큰 자체보다 우선하는지 확인합니다. API 클라이언트를 사용하고 인증 유형으로 '전달자 토큰'을 선택하면 '전달자'가 자동으로 삽입되며 액세스 토큰만 제공하면 됩니다.

옵션 1: MSAL.Net 사용

MSAL 권한 부여 토큰을 가져오는 방법의 예로 Fabric API 빠른 시작 의 토큰 가져오기 섹션을 참조하세요.

MSAL.Net을 사용하여 다음 범위: Workspace.ReadWrite.All, Item.ReadWrite.All로 Fabric 서비스에 대한 Microsoft Entra ID 토큰을 얻습니다. MSAL.Net을 사용하여 토큰을 획득하는 방법에 대한 자세한 내용은 토큰 획득 - .NET용 Microsoft 인증 라이브러리를 참조하세요.

AccessToken 속성에서 토큰을 복사하고 다음 예제의 <액세스 토큰> 자리 표시자를 토큰으로 바꿉니다.

옵션 2: 패브릭 포털 사용

테스트할 테넌트의 패브릭 포털에 로그인하고 F12 키를 눌러 브라우저의 개발자 모드로 전환합니다. 콘솔에서 다음을 실행합니다.

powerBIAccessToken

다음 예제에서 토큰을 복사하고 <access-token> 자리 표시자를 토큰으로 바꾸십시오.

Apache Airflow 작업 만들기

지정된 작업 영역에서 Apache Airflow 작업을 만듭니다.

샘플 요청:

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

헤더:

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

페이로드:

{
  "displayName": "My Apache Airflow Job",
  "description": "My Apache Airflow Job description",
  "type": "ApacheAirflowJobs"
}

샘플 응답:

{
  "id": "<artifactId>",
  "type": "ApacheAirflowJobs",
  "displayName": "My Apache Airflow Job",
  "description": "My Apache Airflow Job description",
  "workspaceId": "<workspaceId>"
}

정의를 사용하여 Apache Airflow 작업 만들기

지정된 작업 영역에서 공용 정의를 사용하여 Apache Airflow 작업을 만듭니다.

샘플 요청:

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

헤더:

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

페이로드:

{
  "displayName": " My Apache Airflow Job",
  "description": "My Apache Airflow Job description",

  "type": "ApacheAirflowJobs",
  "definition": { 
    "parts": [ 
      {
        "path": "ApacheAirflowJob.json",
        "payload": "{apacheAirflowJobPayload}",
        "payloadType": "InlineBase64"
      },
      {
        "path": ".platform",
        "payload": "{apacheAirflowJobPayload}",
        "payloadType": "InlineBase64"
      }
    ] 
  }
}

샘플 응답:

{
  "id": "<Your artifactId>",
  "type": "ApacheAirflowJobs",
  "displayName": "My Apache Airflow Job",
  "description": "My Apache Airflow Job description",
  "workspaceId": "<Your workspaceId>"
}

Apache Airflow 작업 가져오기

지정된 Apache Airflow 작업의 속성을 반환합니다.

샘플 요청:

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

헤더:

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

샘플 응답:

{
  "id": "<Your artifactId>",
  "type": "ApacheAirflowJobs",
  "displayName": "My Apache Airflow Job",
  "description": "My Apache Airflow Job description",
  "workspaceId": "<Your workspaceId>"
}

정의를 사용하여 Apache Airflow 작업 가져오기

Apache Airflow 작업 항목 정의를 반환합니다.

샘플 요청:

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

헤더:

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

샘플 응답:

{
  "definition": {
    "parts": [
      {
        "path": "ApacheAirflowJob.json",
        "payload": "{apacheAirflowJobPayload}",
        "payloadType": "InlineBase64"
      },
      {
        "path": ".platform",
        "payload": "{apacheAirflowJobPayload}",
        "payloadType": "InlineBase64"
      }
    ]
  }
}

Apache Airflow 작업 업데이트

Apache Airflow 작업의 속성을 업데이트합니다.

샘플 요청:

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

헤더:

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

페이로드:

{
  "displayName": "My Apache Airflow Job updated",
  "description": "My Apache Airflow Job description updated",
  "type": "ApacheAirflowJobs"
}

샘플 응답:

{
  "id": "<Your artifactId>",
  "type": "ApacheAirflowJobs",
  "displayName": "My Apache Airflow Job updated",
  "description": "My Apache Airflow Job description updated",
  "workspaceId": "<Your workspaceId>"
}

정의를 사용하여 Apache Airflow 작업 업데이트

Apache Airflow 작업 항목 정의를 업데이트합니다.

샘플 요청:

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

헤더:

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

페이로드:

{
  "displayName": "My Apache Airflow Job",
  "type": "ApacheAirflowJobs",
  "definition": {
    "parts": [ 
      {
        "path": "ApacheAirflowJob.json",
        "payload": "{apacheAirflowJobPayload}",
        "payloadType": "InlineBase64"
      },
      {
        "path": ".platform",
        "payload": "{apacheAirflowJobPayload}",
        "payloadType": "InlineBase64"
      }
    ]
  }
}

샘플 응답:

200 OK

Apache Airflow 작업 삭제

지정된 Apache Airflow 작업을 삭제합니다.

샘플 요청:

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

헤더:

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

샘플 응답:

200 OK

작업 파일 관리 API

Apache Airflow 작업 파일 가져오기

경로별로 Apache Airflow에서 작업 파일을 반환합니다.

요청 URI: GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files/{filePath}

샘플 결과:

200 OK

Apache Airflow 작업 파일 만들기/업데이트

Apache Airflow 작업 파일을 만들거나 업데이트합니다.

요청 URI: PUT https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files/{filePath}

요청 페이로드:

Binary 
PYTHON files (DAGs), should be UTF-8 encoded

샘플 결과:

200 OK

Apache Airflow 작업 파일 삭제

지정된 Apache Airflow 작업 파일을 삭제합니다.

요청 URI: DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files/{filePath}

샘플 결과:

200 OK

Apache Airflow 작업 파일 나열

지정된 Apache Airflow 작업 파일의 파일을 나열합니다.

요청 URI: GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files?rootPath=”my_folder”&continuationToken={token}

rootPath 및 continutationToken은 선택 사항입니다.

샘플 결과:

{
"files": [
{ filePath:string, sizeInBytes: int },
  ],
 "continuationToken": "LDEsMTAwMDAwLDA%3D "
"continuationUri": "https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files?continuationToken='LDEsMTAwMDAwLDA%3D'"
}  

SPN(서비스 사용자 이름) 지원

SPN(서비스 사용자 이름)은 애플리케이션 또는 서비스에서 특정 리소스에 액세스하는 데 사용하는 보안 ID 기능입니다. Fabric Data Factory에서 SPN 지원은 데이터 원본에 대한 안전하고 자동화된 액세스를 사용하도록 설정하는 데 매우 중요합니다. SPN 지원에 대한 몇 가지 핵심 사항은 다음과 같습니다.

  • 인증: SPN은 데이터 원본에 액세스할 때 애플리케이션 또는 서비스를 인증하는 데 사용됩니다. 이렇게 하면 권한 있는 엔터티만 데이터에 액세스할 수 있습니다.
  • 구성: SPN을 사용하려면 Azure에서 서비스 주체(SPN)를 만들고 데이터 원본에 액세스하는 데 필요한 권한을 부여해야 합니다. 예를 들어 데이터 레이크를 사용하는 경우 서비스 주체에 스토리지 Blob 데이터 판독기 액세스 권한이 필요합니다.
  • 연결: Fabric Data Factory에서 데이터 연결을 설정할 때 서비스 주체를 사용하여 인증을 선택할 수 있습니다. 여기에는 서비스 주체의 테넌트 ID, 클라이언트 ID 및 클라이언트 암호를 제공하는 작업이 포함됩니다.
  • 보안: SPN을 사용하면 데이터 흐름에서 하드 코딩된 자격 증명을 사용하지 않도록 하여 보안을 강화합니다. 또한 액세스 권한을 더 효율적으로 관리하고 액세스 활동을 감사할 수 있습니다.

Fabric Data Factory에서 SPN을 설정하고 사용하는 방법에 대한 자세한 정보는 Data Factory의 SPN 지원을 참조하세요.

Fabric Data Factory의 Apache Airflow 작업에서 API에 대한 자세한 내용은 다음 콘텐츠를 참조하세요.