Synkronisera en GitHub-lagringsplats i Workflow Orchestration Manager
GÄLLER FÖR: Azure Data Factory Azure Synapse Analytics
Dricks
Prova Data Factory i Microsoft Fabric, en allt-i-ett-analyslösning för företag. Microsoft Fabric omfattar allt från dataflytt till datavetenskap, realtidsanalys, business intelligence och rapportering. Lär dig hur du startar en ny utvärderingsversion kostnadsfritt!
Kommentar
Den här funktionen är en allmänt tillgänglig förhandsversion. Workflow Orchestration Manager drivs av Apache Airflow.
I den här artikeln får du lära dig hur du synkroniserar din GitHub-lagringsplats i Azure Data Factory Workflow Orchestration Manager på två olika sätt:
- Genom att använda Aktivera git-synkronisering i arbetsflödesorkestreringshanterarens användargränssnitt.
- Med hjälp av rest-API:et.
Förutsättningar
- Azure-prenumeration: Om du inte har en Azure-prenumeration skapar du ett kostnadsfritt Azure-konto innan du börjar. Skapa eller välj en befintlig Data Factory-instans i en region där förhandsversionen av Workflow Orchestration Manager stöds.
- GitHub-lagringsplats: Du behöver åtkomst till en GitHub-lagringsplats.
Använda arbetsflödesorkestreringshanterarens användargränssnitt
Så här synkroniserar du din GitHub-lagringsplats med hjälp av arbetsflödesorkestreringshanterarens användargränssnitt:
Kontrollera att lagringsplatsen innehåller de mappar och filer som behövs:
dags/: För Apache Airflow-riktade acykliska grafer (dags) (krävs).
Plugin-program/: För integrering av externa funktioner i Airflow.
När du skapar en integrationskörning i Workflow Orchestration Manager väljer du Aktivera git-synkronisering i dialogrutan Konfiguration av Airflow-miljö.
Välj någon av följande Git-tjänsttyper som stöds:
- GitHub
- ADO
- GitLab
- BitBucket
Välj en typ av autentiseringsuppgifter:
Ingen (för en offentlig lagringsplats): När du väljer det här alternativet kontrollerar du att lagringsplatsens synlighet är offentlig. Fyll sedan i informationen:
- Url för Git-lagringsplats (krävs): Klonings-URL:en för den GitHub-lagringsplats som du vill använda.
- Git-gren (krävs): Den aktuella grenen, där den Git-lagringsplats du vill använda finns.
Personlig git-åtkomsttoken: När du har valt det här alternativet för en personlig åtkomsttoken (PAT) fyller du i de återstående fälten baserat på den valda Git-tjänsttypen:
- Personlig GitHub-åtkomsttoken
- Personlig åtkomsttoken för ADO
- Personlig åtkomsttoken för GitLab
- Personlig åtkomsttoken för BitBucket
SPN (tjänstens huvudnamn): Endast ADO stöder den här typen av autentiseringsuppgifter. När du har valt det här alternativet fyller du i de återstående fälten baserat på den valda Git-tjänsttypen:
- Url för Git-lagringsplats (krävs): Klon-URL:en till Git-lagringsplatsen som ska synkroniseras.
- Git-gren (krävs): Grenen på lagringsplatsen som ska synkroniseras.
- App-ID för tjänstens huvudnamn (krävs): App-ID för tjänstens huvudnamn med åtkomst till ADO-lagringsplatsen för synkronisering.
- Hemlighet för tjänstens huvudnamn (krävs): En manuellt genererad hemlighet i tjänstens huvudnamn vars värde används för att autentisera och komma åt ADO-lagringsplatsen.
- Klient-ID för tjänstens huvudnamn (krävs): Klient-ID för tjänstens huvudnamn.
Fyll i resten av fälten med nödvändig information.
Välj Skapa.
Använda REST API
Så här synkroniserar du din GitHub-lagringsplats med hjälp av Rest-API:et:
Metod: PUT
URL:
https://management.azure.com/subscriptions/<subscriptionid>/resourcegroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<datafactoryName>/integrationruntimes/<airflowEnvName>?api-version=2018-06-01
URI-parametrar:
Name I Obligatoriskt Type Beskrivning Prenumerations-ID path Sant sträng Prenumerationsidentifierare ResourceGroup-namn path Sant sträng Resursgruppsnamn (Regex-mönster: ^[-\w\._\(\)]+$
)dataFactoryName path Sant sträng Namnet på Azure Data Factory (Regex-mönster: ^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$
airflowEnvName path Sant sträng Namn på arbetsflödesorkestreringshanterarens miljö Api-version query Sant sträng API-versionen Begärandetext (Airflow-konfiguration):
Namn Type Beskrivning name sträng Namnet på Airflow-miljön egenskaper propertyType Konfigurationsegenskaper för miljön Egenskapstyp:
Namn Type Beskrivning Typ sträng Resurstypen (Airflow i det här scenariot) typeProperties typeProperty Airflow Typegenskap:
Namn Type Beskrivning computeProperties computeProperty Konfiguration av den beräkningstyp som används för miljön airflowProperties airflowProperty Konfiguration av airflow-egenskaperna för miljön Beräkningsegenskap:
Namn Type Beskrivning plats sträng Platsen för Airflow-integreringskörningen är som standard datafabriksregionen. Skapa en ny datafabrik i den region som krävs för att skapa en integrationskörning i en annan region. computeSize sträng Storleken på beräkningsnoden som du vill att Airflow-miljön ska köras på. Exempel är Stora eller Små. Tre noder allokeras från början. extraNoder integer Varje extra nod lägger till ytterligare tre arbetare. Airflow-egenskap:
Namn Type Beskrivning airflowVersion sträng Version av Apache Airflow som stöds. Till exempel 2.4.3. airflowRequirements Matrissträng<> Python-bibliotek som du vill använda. Till exempel ["flask-bcrypy=0.7.1"]. Kan vara en kommaavgränsad lista. airflowEnvironmentVariables Objekt (nyckel/värde-par) Miljövariabler som du vill använda. Till exempel { "SAMPLE_ENV_NAME": "test" }. gitSyncProperties gitSyncProperty Git-konfigurationsegenskaper. enableAADIntegration boolean Tillåter Att Microsoft Entra-ID loggar in på Workflow Orchestration Manager. userName sträng eller null Användarnamn för grundläggande autentisering. password sträng eller null Lösenord för grundläggande autentisering. Git-synkroniseringsegenskap:
Namn Type Beskrivning gitServiceType sträng Git-tjänsten där den önskade lagringsplatsen finns. Värden är GitHub, ADO, GitLab eller BitBucket. gitCredentialType sträng Typ av Git-autentiseringsuppgifter. Värdena är PAT (för personlig åtkomsttoken), SPN (stöds endast av ADO) och Ingen. lagringsplats sträng Länk till lagringsplats. gren sträng Gren som ska användas på lagringsplatsen. användarnamn sträng GitHub-användarnamn. Merit sträng Värdet för PAT. tenantId sträng Klient-ID:t för tjänstens huvudnamn (stöds endast av ADO). Svar:
Name Statuskod Typ Beskrivning Har godkänts 200 Fabrik OK Behörighet saknas 401 Molnfel Matris med mer felinformation
Exempel
Granska följande exempel.
Exempelförfrågan:
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
Exempeltext:
{
"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": []
}
}
}
}
Exempelsvar:
Status code: 200 OK
Svarstext:
{
"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"
}
Här följer några API-nyttolastexempel:
Git-synkroniseringsegenskaper för GitHub med PAT:
"gitSyncProperties": { "gitServiceType": "Github", "gitCredentialType": "PAT", "repo": <repo url>, "branch": <repo branch to sync>, "username": <username>, "credential": <personal access token> }
Egenskaper för Git-synkronisering för ADO med PAT:
"gitSyncProperties": { "gitServiceType": "ADO", "gitCredentialType": "PAT", "repo": <repo url>, "branch": <repo branch to sync>, "username": <username>, "credential": <personal access token> }
Egenskaper för Git-synkronisering för ADO med tjänstens huvudnamn:
"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> }
Git-synkroniseringsegenskaper för en offentlig GitHub-lagringsplats:
"gitSyncProperties": { "gitServiceType": "Github", "gitCredentialType": "None", "repo": <repo url>, "branch": <repo branch to sync> }
Importera ett privat paket med Git-synkronisering
Den här valfria processen gäller endast när du använder privata paket.
Den här processen förutsätter att ditt privata paket har synkroniserats automatiskt via Git-synkronisering. Du lägger till paketet som ett krav i arbetsflödesorkestreringshanterarens användargränssnitt tillsammans med sökvägsprefixet /opt/airflow/git/\<repoName\>/
, om du ansluter till en ADO-lagringsplats. Använd /opt/airflow/git/\<repoName\>.git/
för alla andra Git-tjänster.
Om ditt privata paket till exempel finns i /dags/test/private.whl
en GitHub-lagringsplats bör du lägga till kravet /opt/airflow/git/\<repoName\>.git/dags/test/private.whl
i arbetsflödesorkestreringshanterarens miljö.