Udostępnij przez


Możliwości interfejsu API REST dla zadań Apache Airflow w rozwiązaniu Fabric Data Factory

Uwaga / Notatka

Zadanie w Apache Airflow jest uruchamiane przez Apache Airflow.

Usługa Fabric Data Factory oferuje zaawansowany zestaw interfejsów API, które ułatwiają automatyzowanie zadań platformy Apache Airflow i zarządzanie nimi. Możesz łączyć się z różnymi źródłami danych i usługami oraz kompilować, aktualizować lub monitorować przepływy pracy za pomocą zaledwie kilku wierszy kodu. API umożliwiają wszystko, od tworzenia i edytowania zadań platformy Apache Airflow po ich śledzenie — dzięki czemu możesz zapewnić płynny przepływ danych.

Przypadki użycia interfejsu API dla zadań Apache Airflow

Interfejsy API do zadań Apache Airflow w usłudze Fabric Data Factory mogą być stosowane w różnych scenariuszach:

  • Wdrożenie automatyczne: zautomatyzuj wdrażanie zadań platformy Apache Airflow w różnych środowiskach (programowanie, testowanie, produkcja) przy użyciu praktyk ciągłej integracji/ciągłego wdrażania.
  • Monitorowanie i alerty: skonfiguruj zautomatyzowane systemy monitorowania i alertów, aby śledzić stan zadań systemu Apache Airflow i otrzymywać powiadomienia, jeśli wystąpią błędy lub problemy z wydajnością.
  • Obsługa błędów: Zaimplementuj niestandardowe mechanizmy obsługi błędów i ponawiania prób, aby zapewnić bezproblemowe uruchamianie zadań systemu Apache Airflow i odzyskiwanie po awariach.

Opis interfejsów API

Aby efektywnie korzystać z interfejsów API dla zadań Apache Airflow w usłudze Fabric Data Factory, ważne jest zrozumienie kluczowych pojęć i składników:

  • Punkty końcowe: punkty końcowe interfejsu API zapewniają dostęp do różnych operacji zadań platformy Apache Airflow, takich jak tworzenie, aktualizowanie i usuwanie zadań platformy Apache Airflow.
  • Uwierzytelnianie: bezpieczny dostęp do interfejsów API przy użyciu mechanizmów uwierzytelniania, takich jak OAuth lub klucze interfejsu API.
  • Żądania i odpowiedzi: Omówienie struktury żądań i odpowiedzi interfejsu API, w tym wymaganych parametrów i oczekiwanych danych wyjściowych.
  • Limity szybkości: należy pamiętać o limitach szybkości nakładanych na użycie interfejsu API, aby uniknąć przekroczenia dozwolonej liczby żądań.

Wsparcie CRUD

CRUD oznacza tworzenie, odczytywanie, aktualizowanie i usuwanie, które są czterema podstawowymi operacjami, które można wykonać na danych. W usłudze Fabric Data Factory operacje CRUD są obsługiwane za pośrednictwem Fabric API dla Data Factory. Te interfejsy API umożliwiają użytkownikom programowe zarządzanie zadaniami Apache Airflow. Oto kilka kluczowych kwestii dotyczących obsługi operacji CRUD:

  • Utwórz: Utwórz nowe zadania Apache Airflow przy użyciu interfejsu API.
  • Odczytaj: Uzyskiwanie informacji o istniejących zadaniach w Apache Airflow.
  • Aktualizacja: Zaktualizuj istniejące zadania platformy Apache Airflow.
  • Usuń: usuń zadania platformy Apache Airflow, które nie są już potrzebne.

Podstawowa dokumentacja referencyjna online dla interfejsów API REST usługi Microsoft Fabric znajduje się w dokumentacji interfejsu API REST usługi Microsoft Fabric.

Dodatkowe interfejsy API oferowane w zadaniach platformy Apache Airflow

Oprócz interfejsów API CRUD dostępnych jest szereg dodatkowych interfejsów API operacyjnych oferowanych dla zadań Apache Airflow:

  • API zarządzania plikami
  • API zarządzania pulami
  • Ustawienia API obszaru roboczego

Rozpocznij pracę z interfejsami API REST dla zadań Apache Airflow

W poniższych dokumentach opisano sposób tworzenia, aktualizowania i zarządzania zadaniami platformy Apache Airflow oraz przypadków użycia operacji przy użyciu interfejsów API usługi Fabric Data Factory.

Uzyskiwanie tokenu autoryzacji

Przed użyciem innych interfejsów API REST należy mieć token elementu nośnego.

Ważne

W poniższych przykładach upewnij się, że słowo "Bearer" (z spacją) poprzedza sam token dostępu. Podczas korzystania z klienta API i wyboru opcji "Bearer token" jako typu uwierzytelniania, element 'Bearer' jest automatycznie wstawiany, a wymagany jest jedynie token dostępu.

Opcja 1. Używanie MSAL.Net

Zapoznaj się z sekcją Pobieranie tokenu w przewodniku szybkiego startu interfejsu API Fabric, aby zobaczyć przykład uzyskiwania tokenu autoryzacji biblioteki MSAL.

Użyj MSAL.Net, aby uzyskać token Microsoft Entra ID dla usługi Fabric z następującymi zakresami: Workspace.ReadWrite.All, Item.ReadWrite.All. Aby uzyskać więcej informacji na temat pozyskiwania tokenów za pomocą MSAL.Net, zobacz Token Acquisition — Microsoft Authentication Library for .NET (Pozyskiwanie tokenów — biblioteka uwierzytelniania firmy Microsoft dla platformy .NET).

Skopiuj token z właściwości AccessToken i zastąp <symbol zastępczy tokenu> dostępu w poniższych przykładach tokenem.

Opcja 2: Korzystanie z portalu Fabric

Zaloguj się do portalu Fabric dla dzierżawy, w której chcesz przeprowadzić testowanie, i naciśnij F12, aby przejść do trybu dewelopera przeglądarki. W konsoli uruchom:

powerBIAccessToken

Skopiuj token i zastąp <symbol zastępczy tokenu> dostępu w poniższych przykładach tokenem.

Tworzenie zadania Apache Airflow

Utwórz zadanie przepływu powietrza Apache w określonym obszarze roboczym.

Przykładowe żądanie:

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

Headers:

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

Ładunek:

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

Przykładowa odpowiedź:

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

Utworzyć zadanie Apache Airflow z definicją

Utwórz zadanie platformy Apache Airflow z publiczną definicją w określonym obszarze roboczym. Aby uzyskać dodatkowe informacje na temat tworzenia zadania w Apache Airflow z definicją zadania, zapoznaj się z Interfejsem API REST usługi Microsoft Fabric.

Przykładowe żądanie:

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

Headers:

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

Ładunek:

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

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

Przykładowa odpowiedź:

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

Pobierz zadanie Apache Airflow

Zwraca właściwości określonego zadania Apache Airflow.

Przykładowe żądanie:

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

Headers:

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

Przykładowa odpowiedź:

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

Uzyskaj zadanie Apache Airflow z definicją

Zwraca definicję elementu zadania Apache Airflow. Aby uzyskać dodatkowe informacje na temat pobierania zdefiniowanego zadania Apache Airflow, sprawdź Interfejs API REST usługi Microsoft Fabric.

Przykładowe żądanie:

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

Headers:

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

Przykładowa odpowiedź:

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

Aktualizowanie zadania platformy Apache Airflow

Aktualizuje właściwości zadania Apache Airflow.

Przykładowe żądanie:

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

Headers:

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

Ładunek:

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

Przykładowa odpowiedź:

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

Aktualizowanie zadania platformy Apache Airflow przy użyciu definicji

Aktualizuje definicję elementu zadania Apache Airflow. Aby uzyskać dodatkowe informacje na temat aktualizowania zadania Apache Airflow z definicją, sprawdź Interfejs API REST usługi Microsoft Fabric.

Przykładowe żądanie:

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

Headers:

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

Ładunek:

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

Przykładowa odpowiedź:

200 OK

Usuń zadanie Apache Airflow

Usuwa określone zadanie platformy Apache Airflow.

Przykładowe żądanie:

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

Headers:

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

Przykładowa odpowiedź:

200 OK

API zarządzania plikami

Pobierz plik zadania Apache Airflow

Zwraca plik zadania z platformy Apache Airflow według ścieżki.

Identyfikator URI żądania: GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files/{filePath}?preview=true

Przykładowe wyniki:

200 OK

Tworzenie/aktualizowanie pliku zadania apache Airflow

Tworzy lub aktualizuje plik zadania platformy Apache Airflow.

Identyfikator URI żądania: PUT https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files/{filePath}?preview=true

Ładunek żądania:

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

Przykładowe wyniki:

200 OK

Usuwanie pliku zadania Apache Airflow

Usuwa określony plik zadań platformy Apache Airflow.

Identyfikator URI żądania: DELETE https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files/{filePath}?preview=true

Przykładowe wyniki:

200 OK

Wyświetlanie listy plików zadań systemu Apache Airflow

Wyświetla listę plików określonego pliku zadania platformy Apache Airflow.

Identyfikator URI żądania: GET https://api.fabric.microsoft.com/v1/workspaces/{workspaceId}/apacheairflowjobs/{apacheAirflowJobId}/files?rootPath=”my_folder”&continuationToken={token}?preview=true

Należy pamiętać, że parametr rootPath i continutationToken są opcjonalne.

Przykładowe wyniki:

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

Obsługa głównej nazwy usługi (SPN)

Service Principal Name (SPN) jest obsługiwany dla zadań Apache Airflow w Fabric Data Factory.

  • Uwierzytelnianie: usługa Airflow używa jednostki usługi do uwierzytelniania wychodzących wywołań interfejsu API (na przykład do usług platformy Azure lub innych zabezpieczonych punktów końcowych). Dzięki temu DAG mogą działać nienadzorowane, zapewniając jednocześnie, że tylko zatwierdzone tożsamości mogą uzyskiwać dostęp do zasobów podrzędnych.
  • Konfiguracja: Aby użyć SPN z Airflow, utwórz główne konto usługi w Azure Active Directory i przyznaj mu wymagane uprawnienia dla celowanej usługi. Jeśli na przykład DAG Airflow odczytuje lub zapisuje w Azure Data Lake Storage, główny użytkownik usługi musi mieć przypisane odpowiednie role magazynu (takie jak Czytelnik danych obiektów blob magazynu lub Współautor).
  • Połączenie: podczas konfigurowania połączeń Airflow w usłudze Fabric Data Factory można odwoływać się do jednostki usługi, podając jej identyfikator dzierżawy, identyfikator klienta i klucz tajny klienta. Te poświadczenia są następnie używane przez operatory i hooki Airflow podczas wykonywania uwierzytelnionych wywołań interfejsu API.
  • Zabezpieczenia: Użycie SPN pozwala uniknąć osadzania poświadczeń użytkownika bezpośrednio w kodzie lub plikach konfiguracji DAG. Upraszcza również rotację poświadczeń, inspekcję dostępu i odwoływanie dostępu bez konieczności wprowadzania zmian w logice DAG Airflow.

Aby uzyskać bardziej szczegółowe informacje na temat sposobu konfigurowania i używania SPN w usłudze Fabric Data Factory, zapoznaj się z obsługą SPN w usłudze Data Factory.

Zapoznaj się z następującą zawartością, aby uzyskać więcej informacji na temat API w zadaniach Apache Airflow w Fabric Data Factory.