Delen via


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

De gebruikersinterface van Workflow Orchestration Manager gebruiken

Uw GitHub-opslagplaats synchroniseren met behulp van de gebruikersinterface van Workflow Orchestration Manager:

  1. 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.

      Schermopname van de structuur van Airflow-mappen in GitHub.

  2. Wanneer u een Workflow Orchestration Manager-integratieruntime maakt, selecteert u Git-synchronisatie inschakelen in het dialoogvenster voor het instellen van de Airflow-omgeving .

    Schermopname van het selectievakje Git-synchronisatie inschakelen in het dialoogvenster voor het instellen van de Airflow-omgeving die wordt weergegeven tijdens het maken van een Airflow Integration Runtime.

  3. Selecteer een van de volgende ondersteunde Git-servicetypen:

    • GitHub
    • LAWAAI
    • GitLab
    • BitBucket

    Schermopname van de vervolgkeuzelijst voor het selecteren van git-servicetypen in het dialoogvenster voor het instellen van de omgeving die wordt weergegeven tijdens het maken van een Workflow Orchestration Manager-integratieruntime.

  4. 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

      Schermopname van de git PAT-referentieopties in het dialoogvenster voor de installatie van de Airflow-omgeving die wordt weergegeven tijdens het maken van een AWorkflow Orchestration Manager-integratieruntime.

    • 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.

      Schermopname van de Git SPN-referentieopties in het dialoogvenster voor het instellen van de Airflow-omgeving die wordt weergegeven tijdens het maken van een Workflow Orchestration Manager-integratieruntime.

  5. Vul de rest van de velden in met de vereiste gegevens.

  6. 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.

Schermopname van de sectie Airflow-vereisten in het dialoogvenster voor het instellen van de Airflow-omgeving die wordt weergegeven tijdens het maken van een Workflow Orchestration Manager-integratieruntime.