Een GitHub-opslagplaats synchroniseren in Workflow Orchestration Manager
VAN TOEPASSING OP: Azure Data Factory Azure Synapse Analytics
Tip
Probeer Data Factory uit in Microsoft Fabric, een alles-in-één analyseoplossing voor ondernemingen. Microsoft Fabric omvat alles, van gegevensverplaatsing tot gegevenswetenschap, realtime analyses, business intelligence en rapportage. Meer informatie over het gratis starten van een nieuwe proefversie .
Notitie
Deze functie is beschikbaar voor openbare preview. Workflow Orchestration Manager wordt mogelijk gemaakt door Apache Airflow.
In dit artikel leert u hoe u uw GitHub-opslagplaats kunt synchroniseren in Azure Data Factory Workflow Orchestration Manager op twee verschillende manieren:
- Door Git-synchronisatie inschakelen te gebruiken in de gebruikersinterface van Workflow Orchestration Manager.
- Met behulp van de Rest API.
Vereisten
- Azure-abonnement: Als u geen Azure-abonnement hebt, maakt u een gratis Azure-account voordat u begint. Maak of selecteer een bestaand Data Factory-exemplaar in een regio waar de preview-versie van Workflow Orchestration Manager wordt ondersteund.
- GitHub-opslagplaats: u hebt toegang nodig tot een GitHub-opslagplaats.
De gebruikersinterface van Workflow Orchestration Manager gebruiken
Uw GitHub-opslagplaats synchroniseren met behulp van de gebruikersinterface van Workflow Orchestration Manager:
Zorg ervoor dat uw opslagplaats de benodigde mappen en bestanden bevat:
dags/: Voor Apache Airflow gerichte acyclische grafieken (dags) (vereist).
Invoegtoepassingen/: voor het integreren van externe functies in Airflow.
Wanneer u een Workflow Orchestration Manager-integratieruntime maakt, selecteert u Git-synchronisatie inschakelen in het dialoogvenster voor het instellen van de Airflow-omgeving .
Selecteer een van de volgende ondersteunde Git-servicetypen:
- GitHub
- LAWAAI
- GitLab
- BitBucket
Selecteer een referentietype:
Geen (voor een openbare opslagplaats): Wanneer u deze optie selecteert, moet u ervoor zorgen dat de zichtbaarheid van uw opslagplaats openbaar is. Vul vervolgens de details in:
- Url van Git-opslagplaats (vereist): de kloon-URL voor de gewenste GitHub-opslagplaats.
- Git-vertakking (vereist): de huidige vertakking , waar de gewenste Git-opslagplaats zich bevindt.
Persoonlijk Git-toegangstoken: Nadat u deze optie voor een persoonlijk toegangstoken (PAT) hebt geselecteerd, vult u de resterende velden in op basis van het geselecteerde Git-servicetype:
- Persoonlijk GitHub-toegangstoken
- Persoonlijk ADO-toegangstoken
- Persoonlijk GitLab-toegangstoken
- Persoonlijk toegangstoken bitBucket
SPN (service principal name): Alleen ADO ondersteunt dit referentietype. Nadat u deze optie hebt geselecteerd, vult u de resterende velden in op basis van het geselecteerde Git-servicetype:
- URL van Git-opslagplaats (vereist): de kloon-URL naar de Git-opslagplaats die moet worden gesynchroniseerd.
- Git-vertakking (vereist): de vertakking in de opslagplaats die moet worden gesynchroniseerd.
- Service-principal-app-id (vereist): de app-id van de service-principal met toegang tot de ADO-opslagplaats die moet worden gesynchroniseerd.
- Service-principalgeheim (vereist): Een handmatig gegenereerd geheim in de service-principal waarvan de waarde wordt gebruikt voor verificatie en toegang tot de ADO-opslagplaats.
- Tenant-id van service-principal (vereist): de tenant-id van de service-principal.
Vul de rest van de velden in met de vereiste gegevens.
Selecteer Maken.
REST-API gebruiken
Uw GitHub-opslagplaats synchroniseren met behulp van de Rest API:
Methode: PUT
URL:
https://management.azure.com/subscriptions/<subscriptionid>/resourcegroups/<resourceGroupName>/providers/Microsoft.DataFactory/factories/<datafactoryName>/integrationruntimes/<airflowEnvName>?api-version=2018-06-01
URI-parameters:
Naam In Vereist Type Description Abonnements-id path Waar tekenreeks Abonnements-id ResourceGroup-naam path Waar tekenreeks Resourcegroepnaam (Regex-patroon: ^[-\w\._\(\)]+$
)dataFactoryName path Waar tekenreeks Naam van de Azure Data Factory (Regex-patroon: ^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$
airflowEnvName path Waar tekenreeks Naam van de werkstroomindelingsbeheeromgeving Api-versie query Waar tekenreeks De API-versie Aanvraagbody (Airflow-configuratie):
Name Type Description naam tekenreeks Naam van de airflow-omgeving properties propertyType Configuratie-eigenschappen voor de omgeving Eigenschappentype:
Name Type Description Type tekenreeks Het resourcetype (Airflow in dit scenario) typeProperties typeProperty Luchtstroom Type eigenschap:
Name Type Description computeProperties computeProperty Configuratie van het rekentype dat wordt gebruikt voor de omgeving airflowProperties airflowProperty Configuratie van de airflow-eigenschappen voor de omgeving Compute-eigenschap:
Name Type Description locatie tekenreeks De locatie van de Airflow Integration Runtime wordt standaard ingesteld op de data factory-regio. Als u een integratieruntime in een andere regio wilt maken, maakt u een nieuwe data factory in de vereiste regio. computeSize tekenreeks De grootte van het rekenknooppunt waarop uw Airflow-omgeving moet worden uitgevoerd. Voorbeelden zijn groot of klein. In eerste instantie worden drie knooppunten toegewezen. extraNodes geheel getal Elk extra knooppunt voegt nog drie werkrollen toe. Airflow-eigenschap:
Name Type Description airflowVersion tekenreeks Ondersteunde versie van Apache Airflow. Bijvoorbeeld 2.4.3. airflowRequirements Matrixtekenreeks<> Python-bibliotheken die u wilt gebruiken. Bijvoorbeeld ["flask-bcrypy=0.7.1"]. Kan een door komma's gescheiden lijst zijn. airflowEnvironmentVariables Object (sleutel/waardepaar) Omgevingsvariabelen die u wilt gebruiken. Bijvoorbeeld{ "SAMPLE_ENV_NAME": "test" }. gitSyncProperties gitSyncProperty Git-configuratie-eigenschappen. enableAADIntegration boolean Hiermee kan Microsoft Entra ID zich aanmelden bij Workflow Orchestration Manager. gebruikersnaam tekenreeks of null Gebruikersnaam voor basisverificatie. password tekenreeks of null Wachtwoord voor basisverificatie. Git-synchronisatie-eigenschap:
Name Type Description gitServiceType tekenreeks De Git-service waar de gewenste opslagplaats zich bevindt. Waarden zijn GitHub, ADO, GitLab of BitBucket. gitCredentialType tekenreeks Type Git-referentie. Waarden zijn PAT (voor persoonlijk toegangstoken), SPN (alleen ondersteund door ADO) en Geen. opslagplaats tekenreeks Koppeling naar opslagplaats. tak tekenreeks Vertakking die moet worden gebruikt in de opslagplaats. gebruikersnaam tekenreeks GitHub-gebruikersnaam. Referentie tekenreeks Waarde van de PAT. tenantId tekenreeks De tenant-id van de service-principal (alleen ondersteund door ADO). Antwoorden:
Naam Statuscode Type Description Geaccepteerd 200 Fabriek OK Niet geautoriseerd 401 Cloudfout Matrix met meer foutdetails
Voorbeelden
Bekijk de volgende voorbeelden.
Voorbeeldaanvraag:
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
Voorbeeldtekst:
{
"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": []
}
}
}
}
Voorbeeldantwoord:
Status code: 200 OK
Hoofdtekst van antwoord:
{
"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"
}
Hier volgen enkele voorbeelden van API-nettoladingen:
Git-synchronisatie-eigenschappen voor GitHub met PAT:
"gitSyncProperties": { "gitServiceType": "Github", "gitCredentialType": "PAT", "repo": <repo url>, "branch": <repo branch to sync>, "username": <username>, "credential": <personal access token> }
Git-synchronisatie-eigenschappen voor ADO met PAT:
"gitSyncProperties": { "gitServiceType": "ADO", "gitCredentialType": "PAT", "repo": <repo url>, "branch": <repo branch to sync>, "username": <username>, "credential": <personal access token> }
Git-synchronisatie-eigenschappen voor ADO met service-principal:
"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-synchronisatie-eigenschappen voor een openbare GitHub-opslagplaats:
"gitSyncProperties": { "gitServiceType": "Github", "gitCredentialType": "None", "repo": <repo url>, "branch": <repo branch to sync> }
Een privépakket importeren met Git-synchronisatie
Dit optionele proces is alleen van toepassing wanneer u privépakketten gebruikt.
In dit proces wordt ervan uitgegaan dat uw privépakket automatisch is gesynchroniseerd via Git-synchronisatie. U voegt het pakket toe als vereiste in de gebruikersinterface van Workflow Orchestration Manager, samen met het padvoorvoegsel /opt/airflow/git/\<repoName\>/
, als u verbinding maakt met een ADO-opslagplaats. Gebruiken /opt/airflow/git/\<repoName\>.git/
voor alle andere Git-services.
Als uw privépakket zich bijvoorbeeld in /dags/test/private.whl
een GitHub-opslagplaats bevindt, moet u de vereiste /opt/airflow/git/\<repoName\>.git/dags/test/private.whl
toevoegen in de werkstroomindelingsbeheeromgeving.