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
Ta funkcja jest dostępna w publicznej wersji zapoznawczej. 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
- Subskrypcja platformy Azure: jeśli nie masz subskrypcji platformy Azure, przed rozpoczęciem utwórz bezpłatne konto platformy Azure. Utwórz lub wybierz istniejące wystąpienie usługi Data Factory w regionie, w którym jest obsługiwana wersja zapoznawcza programu Workflow Orchestration Manager.
- Repozytorium GitHub: potrzebujesz dostępu do repozytorium GitHub.
Korzystanie z interfejsu użytkownika programu Workflow Orchestration Manager
Aby zsynchronizować repozytorium GitHub przy użyciu interfejsu użytkownika programu Workflow Orchestration Manager:
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.
Podczas tworzenia środowiska Integration Runtime programu Orchestration Manager programu Workflow Orchestration Manager wybierz pozycję Włącz synchronizację git w oknie dialogowym Konfiguracja środowiska Airflow.
Wybierz jeden z następujących obsługiwanych typów usług Git:
- GitHub
- ZAMIESZANIE
- GitLab
- BitBucket
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
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.
Wypełnij pozostałe pola wymaganymi informacjami.
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. gałąź 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 Fabryka 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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.