Synchronizace úložiště GitHub ve Správci orchestrace pracovního postupu

PLATÍ PRO: Azure Data Factory Azure Synapse Analytics

Tip

Vyzkoušejte si službu Data Factory v Microsoft Fabric, řešení pro analýzy typu all-in-one pro podniky. Microsoft Fabric zahrnuje všechno od přesunu dat až po datové vědy, analýzy v reálném čase, business intelligence a vytváření sestav. Přečtěte si, jak začít používat novou zkušební verzi zdarma.

Poznámka:

Správce orchestrace pracovních postupů využívá Apache Airflow.

V tomto článku se dozvíte, jak synchronizovat úložiště GitHub ve Správci orchestrace pracovních postupů služby Azure Data Factory dvěma různými způsoby:

  • Pomocí možnosti Povolit synchronizaci Gitu v uživatelském rozhraní Správce orchestrace pracovního postupu.
  • Pomocí rozhraní REST API.

Požadavky

Použití uživatelského rozhraní Správce orchestrace pracovního postupu

K synchronizaci úložiště GitHub pomocí uživatelského rozhraní Správce orchestrace pracovního postupu:

  1. Ujistěte se, že úložiště obsahuje potřebné složky a soubory:

    • dags/: Pro Apache Airflow směrované acyklické grafy (dags) (povinné).

    • Moduly plug-in/: Integrace externích funkcí do Airflow

      Snímek obrazovky znázorňující strukturu složek Airflow na GitHubu

  2. Když vytvoříte prostředí Integration Runtime Orchestration Manageru pracovního postupu, v dialogovém okně nastavení prostředí Airflow vyberte Povolit synchronizaci Gitu.

    Snímek obrazovky znázorňující zaškrtávací políčko Povolit synchronizaci Gitu v dialogovém okně nastavení prostředí Airflow, které se zobrazí při vytváření prostředí Airflow Integration Runtime

  3. Vyberte jeden z následujících podporovaných typů služeb Git:

    • GitHub
    • ADO
    • GitLab
    • BitBucket

    Snímek obrazovky s rozevíracím seznamem pro výběr typu služby Git v dialogovém okně nastavení prostředí, které se zobrazí při vytváření prostředí Integration Runtime Nástroje orchestrace pracovního postupu

  4. Vyberte typ přihlašovacích údajů:

    • Žádné (pro veřejné úložiště): Když vyberete tuto možnost, ujistěte se, že viditelnost úložiště je veřejná. Pak vyplňte podrobnosti:

      • Adresa URL úložiště Git (povinné): Adresa URL klonování požadovaného úložiště GitHub.
      • Větev Git (povinné): Aktuální větev , ve které se nachází požadované úložiště Git.
    • Osobní přístupový token Gitu: Po výběru této možnosti osobního přístupového tokenu (PAT) vyplňte zbývající pole na základě vybraného typu služby Git:

      • Osobní přístupový token GitHubu
      • Osobní přístupový token ADO
      • Osobní přístupový token GitLabu
      • Osobní přístupový token BitBucket

      Snímek obrazovky znázorňující možnosti přihlašovacích údajů Git PAT v dialogovém okně nastavení prostředí Airflow, které se zobrazí při vytváření prostředí AWorkflow Orchestration Manager Integration Runtime

    • Hlavní název služby (SPN): Tento typ přihlašovacích údajů podporuje pouze služba ADO. Po výběru této možnosti vyplňte zbývající pole na základě vybraného typu služby Git:

      • Adresa URL úložiště Git (povinné): Adresa URL klonování do úložiště Git, které se má synchronizovat.
      • Git branch (povinné): Větev v úložišti, která se má synchronizovat.
      • ID aplikace instančního objektu (povinné): ID aplikace instančního objektu s přístupem k úložišti ADO, které se má synchronizovat.
      • Tajný klíč instančního objektu (povinné): Ručně vygenerovaný tajný kód v instančním objektu, jehož hodnota se používá k ověření a přístupu k úložišti ADO.
      • ID tenanta instančního objektu (povinné): ID tenanta instančního objektu

      Snímek obrazovky znázorňující možnosti přihlašovacích údajů hlavního názvu služby Git v dialogovém okně nastavení prostředí Airflow, které se zobrazí při vytváření prostředí Integration Runtime Orchestration Manageru pracovního postupu

  5. Vyplňte zbývající pole požadovanými informacemi.

  6. Vyberte Vytvořit.

Použití rozhraní REST API

K synchronizaci úložiště GitHub pomocí rozhraní REST API:

  • Metoda: PUT

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

  • Parametry identifikátoru URI:

    Název V Požaduje se Type Popis
    ID předplatného path True string Identifikátor předplatného
    Název skupiny prostředků path True string Název skupiny prostředků (vzor Regex: ^[-\w\._\(\)]+$)
    dataFactoryName path True string Název služby Azure Data Factory (vzor Regex: ^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$
    airflowEnvName path True string Název prostředí Správce orchestrace pracovního postupu
    Verze rozhraní API query True string Verze rozhraní API
  • Tělo požadavku (konfigurace Airflow)::

    Name Typ Popis
    name string Název prostředí Airflow
    vlastnosti Propertytype Vlastnosti konfigurace pro prostředí
  • Typ vlastnosti:

    Name Typ Popis
    Typ string Typ prostředku (Airflow v tomto scénáři)
    typeProperties typeProperty Airflow
  • Vlastnost typu:

    Name Typ Popis
    computeProperties computeProperty Konfigurace výpočetního typu používaného pro prostředí
    airflowProperties airflowProperty Konfigurace vlastností Airflow pro prostředí
  • Výpočetní vlastnost:

    Name Typ Popis
    location string Výchozí umístění prostředí Runtime integrace Airflow je v oblasti datové továrny. Pokud chcete vytvořit prostředí Integration Runtime v jiné oblasti, vytvořte novou datovou továrnu v požadované oblasti.
    computeSize string Velikost výpočetního uzlu, na který má prostředí Airflow běžet. Příklady jsou Velké nebo Malé. Zpočátku jsou přiděleny tři uzly.
    extraNodes integer Každý další uzel přidá tři další pracovní procesy.
  • Vlastnost Airflow:

    Name Typ Popis
    airflowVersion string Podporovaná verze Apache Airflow. Například 2.4.3.
    airflowRequirements Řetězec pole<> Knihovny Pythonu, které chcete použít. Například ["flask-bcrypy=0.7.1"]. Může to být čárkami oddělený seznam.
    airflowEnvironmentVariables Objekt (pár klíč/hodnota) Proměnné prostředí, které chcete použít. Například { "SAMPLE_ENV_NAME": "test" }.
    gitSyncProperties gitSyncProperty Vlastnosti konfigurace Gitu
    enableAADIntegration boolean Umožňuje Microsoft Entra ID přihlásit se ke Správci orchestrace pracovního postupu.
    userName řetězec nebo null Uživatelské jméno pro základní ověřování.
    Heslo řetězec nebo null Heslo pro základní ověřování.
  • Vlastnost synchronizace Gitu:

    Name Typ Popis
    gitServiceType string Služba Git, ve které se nachází požadované úložiště. Hodnoty jsou GitHub, ADO, GitLab nebo BitBucket.
    gitCredentialType string Typ přihlašovacích údajů Gitu Hodnoty jsou PAT (pro osobní přístupový token), hlavní název služby (podporované pouze službou ADO) a Žádné.
    úložiště string Odkaz na úložiště.
    Pobočka string Větev, která se má použít v úložišti.
    username string Uživatelské jméno GitHubu
    Reference string Hodnota pat.
    tenantId string ID tenanta instančního objektu (podporované pouze službou ADO).
  • Odpovědi:

    Název Stavový kód Typ Popis
    Přijato 200 Továrna OK
    Neautorizováno 401 Chyba cloudu Pole s dalšími podrobnostmi o chybě

Příklady

Projděte si následující příklady.

Sample request:

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

Ukázkový text:

{
   "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": []
         }
      }
   }
}

Ukázková odpověď:

Status code: 200 OK

Text odpovědi:

{
   "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"
}

Tady je několik příkladů datové části rozhraní API:

  • Vlastnosti synchronizace Gitu pro GitHub s patem:

    "gitSyncProperties":  {
            "gitServiceType": "Github",
            "gitCredentialType": "PAT",
            "repo":  <repo url>,
            "branch": <repo branch to sync>,
            "username": <username>,
            "credential": <personal access token>
    }
    
  • Vlastnosti synchronizace Gitu pro ADO s patem:

    "gitSyncProperties":  {
            "gitServiceType": "ADO",
            "gitCredentialType": "PAT",
            "repo":  <repo url>,
            "branch": <repo branch to sync>,
            "username": <username>,
            "credential": <personal access token>
    }
    
  • Vlastnosti synchronizace Gitu pro ADO s instančním objektem:

    "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>
    }
    
  • Vlastnosti synchronizace Gitu pro veřejné úložiště GitHubu:

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

Import privátního balíčku se synchronizací Gitu

Tento volitelný proces platí jenom v případě, že používáte privátní balíčky.

Tento proces předpokládá, že se váš privátní balíček automaticky synchronizoval prostřednictvím synchronizace Gitu. Balíček přidáte jako požadavek v uživatelském rozhraní Správce orchestrace pracovního postupu spolu s předponou /opt/airflow/git/\<repoName\>/cesty , pokud se připojujete k úložišti ADO. Použijte /opt/airflow/git/\<repoName\>.git/ pro všechny ostatní služby Gitu.

Pokud je například privátní balíček v /dags/test/private.whl úložišti GitHubu, měli byste přidat požadavek /opt/airflow/git/\<repoName\>.git/dags/test/private.whl v prostředí Správce orchestrace pracovního postupu.

Snímek obrazovky znázorňující část Požadavky na Airflow v dialogovém okně nastavení prostředí Airflow, které se zobrazí při vytváření prostředí Orchestration Manager integration runtime nástroje Orchestraation Manager