Synchronizowanie repozytorium GitHub w programie Workflow Orchestration Manager

DOTYCZY: Azure Data Factory Azure Synapse Analytics

Napiwek

Wypróbuj usługę Data Factory w usłudze Microsoft Fabric — rozwiązanie analityczne typu all-in-one dla przedsiębiorstw. Usługa Microsoft Fabric obejmuje wszystko, od przenoszenia danych do nauki o danych, analizy w czasie rzeczywistym, analizy biznesowej i raportowania. Dowiedz się, jak bezpłatnie rozpocząć nową wersję próbną !

Uwaga

Menedżer orkiestracji przepływu pracy jest obsługiwany przez platformę Apache Airflow.

Z tego artykułu dowiesz się, jak zsynchronizować repozytorium GitHub w programie Azure Data Factory Workflow Orchestration Manager na dwa różne sposoby:

  • Za pomocą polecenia Włącz synchronizację git w interfejsie użytkownika programu Workflow Orchestration Manager.
  • Przy użyciu interfejsu API REST.

Wymagania wstępne

Korzystanie z interfejsu użytkownika programu Workflow Orchestration Manager

Aby zsynchronizować repozytorium GitHub przy użyciu interfejsu użytkownika programu Workflow Orchestration Manager:

  1. Upewnij się, że repozytorium zawiera niezbędne foldery i pliki:

    • dags/: W przypadku platformy Apache Airflow skierowane grafy acykliczne (dags) (wymagane).

    • Wtyczki/: w celu integracji funkcji zewnętrznych z funkcją Airflow.

      Zrzut ekranu przedstawiający strukturę folderów Airflow w usłudze GitHub.

  2. Podczas tworzenia środowiska Integration Runtime programu Orchestration Manager programu Workflow Orchestration Manager wybierz pozycję Włącz synchronizację git w oknie dialogowym Konfiguracja środowiska Airflow.

    Zrzut ekranu przedstawiający pole wyboru Włącz synchronizację git w oknie dialogowym Konfiguracja środowiska Airflow, które jest wyświetlane podczas tworzenia środowiska Airflow Integration Runtime.

  3. Wybierz jeden z następujących obsługiwanych typów usług Git:

    • GitHub
    • ADO
    • GitLab
    • BitBucket

    Zrzut ekranu przedstawiający listę rozwijaną wyboru typu usługi Git w oknie dialogowym konfiguracji środowiska, które jest wyświetlane podczas tworzenia środowiska Integration Runtime programu Orchestration Manager.

  4. Wybierz typ poświadczeń:

    • Brak (w przypadku repozytorium publicznego): po wybraniu tej opcji upewnij się, że widoczność repozytorium jest publiczna. Następnie wypełnij szczegóły:

      • Adres URL repozytorium Git (wymagany): adres URL klonowania dla żądanego repozytorium GitHub.
      • Gałąź Git (wymagana): gałąź bieżąca, w której znajduje się żądane repozytorium Git.
    • Osobisty token dostępu usługi Git: po wybraniu tej opcji osobistego tokenu dostępu wypełnij pozostałe pola na podstawie wybranego typu usługi Git:

      • Osobisty token dostępu usługi GitHub
      • Osobisty token dostępu ADO
      • Osobisty token dostępu usługi GitLab
      • Osobisty token dostępu bitBucket

      Zrzut ekranu przedstawiający opcje poświadczeń pat usługi Git w oknie dialogowym konfiguracji środowiska Airflow, które jest wyświetlane podczas tworzenia środowiska Integration Runtime programu AWorkflow Orchestration Manager.

    • Nazwa SPN (nazwa główna usługi): tylko ADO obsługuje ten typ poświadczeń. Po wybraniu tej opcji wypełnij pozostałe pola na podstawie wybranego typu usługi Git:

      • Adres URL repozytorium Git (wymagany): adres URL klonowania do repozytorium Git do synchronizacji.
      • Gałąź Git (wymagana): gałąź w repozytorium do synchronizacji.
      • Identyfikator aplikacji jednostki usługi (wymagany): identyfikator aplikacji jednostki usługi z dostępem do repozytorium ADO do synchronizacji.
      • Klucz tajny jednostki usługi (wymagany): ręcznie wygenerowany wpis tajny w jednostce usługi, którego wartość jest używana do uwierzytelniania i uzyskiwania dostępu do repozytorium ADO.
      • Identyfikator dzierżawy jednostki usługi (wymagany): identyfikator dzierżawy jednostki usługi.

      Zrzut ekranu przedstawiający opcje poświadczeń nazwy SPN usługi Git w oknie dialogowym Konfiguracja środowiska Airflow, które jest wyświetlane podczas tworzenia środowiska Integration Runtime programu Workflow Orchestration Manager.

  5. Wypełnij pozostałe pola wymaganymi informacjami.

  6. Wybierz pozycję Utwórz.

Korzystanie z interfejsu API REST

Aby zsynchronizować repozytorium GitHub przy użyciu interfejsu API REST:

  • Metoda: PUT

  • Adres URL: https://management.azure.com/subscriptions/<subscriptionid>/resourcegroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<datafactoryName>/integrationruntimes/<airflowEnvName>?api-version=2018-06-01

  • Parametry identyfikatora URI:

    Nazwisko W Wymagania Type Opis
    Identyfikator subskrypcji path Prawda string Identyfikator subskrypcji
    Nazwa grupy zasobów path Prawda string Nazwa grupy zasobów (wzorzec wyrażenia regularnego: ^[-\w\._\(\)]+$)
    dataFactoryName path Prawda string Nazwa usługi Azure Data Factory (wzorzec wyrażeń regularnych: ^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$
    airflowEnvName path Prawda string Nazwa środowiska menedżera orkiestracji przepływu pracy
    Wersja interfejsu API zapytanie Prawda string Wersję interfejsu API
  • Treść żądania (konfiguracja przepływu powietrza):

    Nazwisko Pisz opis
    nazwa string Nazwa środowiska Airflow
    właściwości Propertytype Właściwości konfiguracji środowiska
  • Typ właściwości:

    Nazwisko Pisz Opis
    Type string Typ zasobu (przepływ powietrza w tym scenariuszu)
    typeProperties Typeproperty Airflow
  • Właściwość typu:

    Nazwisko Pisz Opis
    computeProperties computeProperty Konfiguracja typu obliczeniowego używanego dla środowiska
    airflowProperties airflowProperty Konfiguracja właściwości przepływu powietrza dla środowiska
  • Właściwość obliczeniowa:

    Nazwisko Pisz Opis
    lokalizacja string Lokalizacja środowiska Airflow Integration Runtime jest domyślnie ustawiona na region fabryki danych. Aby utworzyć środowisko Integration Runtime w innym regionie, utwórz nową fabrykę danych w wymaganym regionie.
    computeSize string Rozmiar węzła obliczeniowego, na którym ma działać środowisko Airflow. Przykłady to Duże lub Małe. Początkowo przydzielane są trzy węzły.
    extraNodes integer Każdy dodatkowy węzeł dodaje trzy kolejne procesy robocze.
  • Właściwość Airflow:

    Nazwisko Pisz Opis
    airflowVersion string Obsługiwana wersja platformy Apache Airflow. Na przykład 2.4.3.
    airflowRequirements Ciąg tablicy<> Biblioteki języka Python, których chcesz użyć. Na przykład ["flask-bcrypy=0.7.1"]. Może być listą rozdzielaną przecinkami.
    airflowEnvironmentVariables Obiekt (para klucz/wartość) Zmienne środowiskowe, których chcesz użyć. Na przykład { "SAMPLE_ENV_NAME": "test" }.
    gitSyncProperties gitSyncProperty Właściwości konfiguracji usługi Git.
    enableAADIntegration boolean Umożliwia usłudze Microsoft Entra ID logowanie się do programu Workflow Orchestration Manager.
    userName ciąg lub wartość null Nazwa użytkownika uwierzytelniania podstawowego.
    hasło ciąg lub wartość null Hasło do uwierzytelniania podstawowego.
  • Właściwość synchronizacji usługi Git:

    Nazwisko Pisz Opis
    gitServiceType string Usługa Git, w której znajduje się żądane repozytorium. Wartości to GitHub, ADO, GitLab lub BitBucket.
    gitCredentialType string Typ poświadczeń usługi Git. Wartości to PAT (dla osobistego tokenu dostępu), nazwa SPN (obsługiwana tylko przez ADO) i Brak.
    repozytorium string Link do repozytorium.
    Oddział string Gałąź do użycia w repozytorium.
    nazwa użytkownika string Nazwa użytkownika usługi GitHub.
    Referencje string Wartość pat.
    tenantId string Identyfikator dzierżawy jednostki usługi (obsługiwany tylko przez ADO).
  • Odpowiedzi:

    Nazwisko Kod stanu Type Opis
    Zaakceptowano 200 Fabryki OK
    Brak autoryzacji 401 Błąd chmury Tablica z bardziej szczegółowymi informacjami o błędzie

Przykłady

Zapoznaj się z poniższymi przykładami.

Przykładowe żądanie:

HTTP
PUT https://management.azure.com/subscriptions/222f1459-6ebd-4896-82ab-652d5f6883cf/resourcegroups/abnarain-rg/providers/Microsoft.DataFactory/factories/ambika-df/integrationruntimes/sample-2?api-version=2018-06-01

Przykładowa treść:

{
   "name": "sample-2",
   "properties": {
      "type": "Airflow",
      "typeProperties": {
         "computeProperties": {
            "location": "East US",
            "computeSize": "Large",
            "extraNodes": 0
         },
         "airflowProperties": {
            "airflowVersion": "2.4.3",
            "airflowEnvironmentVariables": {
               "AIRFLOW__TEST__TEST": "test"
            },
            "airflowRequirements": [
               "apache-airflow-providers-microsoft-azure"
            ],
            "enableAADIntegration": true,
            "userName": null,
            "password": null,
            "airflowEntityReferences": []
         }
      }
   }
}

Przykładowa odpowiedź:

Status code: 200 OK

Treść odpowiedzi:

{
   "id": "/subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/your-rg/providers/Microsoft.DataFactory/factories/your-df/integrationruntimes/sample-2",
   "name": "sample-2",
   "type": "Microsoft.DataFactory/factories/integrationruntimes",
   "properties": {
      "type": "Airflow",
      "typeProperties": {
         "computeProperties": {
            "location": "East US",
            "computeSize": "Large",
            "extraNodes": 0
         },
         "airflowProperties": {
            "airflowVersion": "2.4.3",
            "pythonVersion": "3.8",
            "airflowEnvironmentVariables": {
               "AIRFLOW__TEST__TEST": "test"
            },
            "airflowWebUrl": "https://e57f7409041692.eastus.airflow.svc.datafactory.azure.com/login/",
            "airflowRequirements": [
               "apache-airflow-providers-microsoft-azure"
            ],
            "airflowEntityReferences": [],
            "packageProviderPath": "plugins",
            "enableAADIntegration": true,
            "enableTriggerers": false
         }
      },
      "state": "Initial"
   },
   "etag": "3402279e-0000-0100-0000-64ecb1cb0000"
}

Oto kilka przykładów ładunku interfejsu API:

  • Właściwości synchronizacji usługi Git dla usługi GitHub z tokenem DOSTĘPU:

    "gitSyncProperties":  {
            "gitServiceType": "Github",
            "gitCredentialType": "PAT",
            "repo":  <repo url>,
            "branch": <repo branch to sync>,
            "username": <username>,
            "credential": <personal access token>
    }
    
  • Właściwości synchronizacji usługi Git dla ADO z patem dostępu:

    "gitSyncProperties":  {
            "gitServiceType": "ADO",
            "gitCredentialType": "PAT",
            "repo":  <repo url>,
            "branch": <repo branch to sync>,
            "username": <username>,
            "credential": <personal access token>
    }
    
  • Właściwości synchronizacji usługi Git dla ADO z jednostką usługi:

    "gitSyncProperties":  {
            "gitServiceType": "ADO",
            "gitCredentialType": "SPN",
            "repo":  <repo url>,
            "branch": <repo branch to sync>,
            "username": < service principal app id >,
            "credential": <service principal secret value>
            "tenantId": <service principal tenant id>
    }
    
  • Właściwości synchronizacji usługi Git dla publicznego repozytorium GitHub:

    "gitSyncProperties":  {
            "gitServiceType": "Github",
            "gitCredentialType": "None",
            "repo":  <repo url>,
            "branch": <repo branch to sync>
    }
    

Importowanie pakietu prywatnego za pomocą usługi Git Sync

Ten opcjonalny proces ma zastosowanie tylko w przypadku korzystania z pakietów prywatnych.

W tym procesie przyjęto założenie, że pakiet prywatny został automatycznie zsynchronizowany za pośrednictwem synchronizacji usługi Git. Pakiet należy dodać jako wymaganie w interfejsie użytkownika programu Workflow Orchestration Manager wraz z prefiksem ścieżki /opt/airflow/git/\<repoName\>/, jeśli łączysz się z repozytorium ADO. Użyj /opt/airflow/git/\<repoName\>.git/ dla wszystkich innych usług Git.

Jeśli na przykład pakiet prywatny znajduje się w /dags/test/private.whl repozytorium GitHub, należy dodać wymaganie /opt/airflow/git/\<repoName\>.git/dags/test/private.whl w środowisku Menedżera orkiestracji przepływu pracy.

Zrzut ekranu przedstawiający sekcję Wymagania dotyczące przepływu pracy w oknie dialogowym Konfiguracja środowiska Airflow, które jest wyświetlane podczas tworzenia środowiska Integration Runtime programu Workflow Orchestration Manager.