Aracılığıyla paylaş


Workflow Orchestration Manager'da GitHub deposunu eşitleme

UYGULANANLAR: Azure Data Factory Azure Synapse Analytics

İpucu

Kuruluşlar için hepsi bir arada analiz çözümü olan Microsoft Fabric'te Data Factory'yi deneyin. Microsoft Fabric , veri taşımadan veri bilimine, gerçek zamanlı analize, iş zekasına ve raporlamaya kadar her şeyi kapsar. Yeni bir deneme sürümünü ücretsiz olarak başlatmayı öğrenin!

Not

Bu özellik genel önizleme aşamasındadır. Workflow Orchestration Manager, Apache Airflow tarafından desteklenir.

Bu makalede, Azure Data Factory workflow Orchestration Manager'daki GitHub deponuzu iki farklı yolla eşitlemeyi öğreneceksiniz:

  • İş Akışı Düzenleme Yöneticisi kullanıcı arabiriminde Git eşitlemesini etkinleştir'i kullanarak.
  • Rest API kullanarak.

Önkoşullar

  • Azure aboneliği: Azure aboneliğiniz yoksa başlamadan önce ücretsiz bir Azure hesabı oluşturun. İş Akışı Düzenleme Yöneticisi önizlemesinin desteklendiği bir bölgede mevcut data factory örneğini oluşturun veya seçin.
  • GitHub deposu: GitHub deposuna erişmeniz gerekir.

İş Akışı Düzenleme Yöneticisi kullanıcı arabirimini kullanma

İş Akışı Düzenleme Yöneticisi kullanıcı arabirimini kullanarak GitHub deponuzu eşitlemek için:

  1. Deponuzun gerekli klasörleri ve dosyaları içerdiğinden emin olun:

    • dags/: Apache Airflow için döngüsel grafiklere (dags) yönlendirildi (gerekli).

    • Eklentiler/: Dış özellikleri Airflow ile tümleştirmek için.

      GitHub'daki Airflow klasörleri yapısını gösteren ekran görüntüsü.

  2. İş Akışı Orchestration Manager tümleştirme çalışma zamanı oluşturduğunuzda, Airflow ortamı kurulum iletişim kutusunda Git eşitlemesini etkinleştir'i seçin.

    Airflow tümleştirme çalışma zamanı oluşturulurken görüntülenen Airflow ortamı kurulum iletişim kutusundaki Git eşitlemesini etkinleştir onay kutusunu gösteren ekran görüntüsü.

  3. Aşağıdaki desteklenen Git hizmet türlerinden birini seçin:

    • GitHub
    • ADO
    • GitLab
    • BitBucket

    İş Akışı Orchestration Manager tümleştirme çalışma zamanı oluşturulurken görüntülenen ortam kurulumu iletişim kutusundaki Git hizmet türü seçimi açılan listesini gösteren ekran görüntüsü.

  4. Bir kimlik bilgisi türü seçin:

    • Hiçbiri (genel depo için): Bu seçeneği belirlediğinizde, deponuzun görünürlüğünün genel olduğundan emin olun. Ardından ayrıntıları doldurun:

      • Git deposu url'si (gerekli): İstediğiniz GitHub deposunun kopya URL'si.
      • Git dalı (gerekli): İstediğiniz Git deposunun bulunduğu geçerli daldır.
    • Git kişisel erişim belirteci: Kişisel erişim belirteci (PAT) için bu seçeneği belirledikten sonra, seçili Git hizmet türüne göre kalan alanları doldurun:

      • GitHub kişisel erişim belirteci
      • ADO kişisel erişim belirteci
      • GitLab kişisel erişim belirteci
      • BitBucket kişisel erişim belirteci

      AWorkflow Orchestration Manager tümleştirme çalışma zamanı oluşturulurken görüntülenen Airflow ortamı kurulum iletişim kutusundaki Git PAT kimlik bilgisi seçeneklerini gösteren ekran görüntüsü.

    • SPN (hizmet asıl adı): Bu kimlik bilgisi türünü yalnızca ADO destekler. Bu seçeneği belirledikten sonra, seçili Git hizmet türüne göre kalan alanları doldurun:

      • Git deposu url'si (gerekli): Eşitlenecek Git deposunun kopya URL'si.
      • Git dalı (gerekli): Eşitlenecek depodaki dal.
      • Hizmet sorumlusu uygulama kimliği (gerekli): Eşitlenecek ADO deposuna erişimi olan hizmet sorumlusu uygulama kimliği.
      • Hizmet sorumlusu gizli anahtarı (gerekli): Hizmet sorumlusunda el ile oluşturulan ve değeri ADO deposunun kimliğini doğrulamak ve bu depoya erişmek için kullanılan gizli dizi.
      • Hizmet sorumlusu kiracı kimliği (gerekli): Hizmet sorumlusu kiracı kimliği.

      İş Akışı Orchestration Manager tümleştirme çalışma zamanı oluşturulurken görüntülenen Airflow ortamı kurulum iletişim kutusundaki Git SPN kimlik bilgisi seçeneklerini gösteren ekran görüntüsü.

  5. Kalan alanları gerekli bilgilerle doldurun.

  6. Oluştur'u belirleyin.

REST API’sini kullanma

Rest API kullanarak GitHub deponuzu eşitlemek için:

  • Yöntem: PUT

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

  • URI parametreleri:

    Veri Akışı Adı İçinde Zorunlu Türü Açıklama
    Abonelik Kimliği yol Doğru Dize Abonelik tanımlayıcısı
    ResourceGroup Adı yol Doğru Dize Kaynak grubu adı (Regex deseni: ^[-\w\._\(\)]+$)
    dataFactoryName yol Doğru Dize Azure Data Factory'nin adı (Regex deseni: ^[A-Za-z0-9]+(?:-[A-Za-z0-9]+)*$
    airflowEnvName yol Doğru Dize İş Akışı Düzenleme Yöneticisi ortamının adı
    Api sürümü query Doğru Dize API sürümü
  • İstek gövdesi (Hava akışı yapılandırması):

    Adı Tür Açıklama
    Adı Dize Airflow ortamının adı
    özellikler Propertytype Ortamın yapılandırma özellikleri
  • Özellikler türü:

    Adı Tür Açıklama
    Tür Dize Kaynak türü (Bu senaryoda hava akışı )
    typeProperties Typeproperty Airflow
  • Tür özelliği:

    Adı Tür Açıklama
    computeProperties computeProperty Ortam için kullanılan işlem türünün yapılandırması
    airflowProperties airflowProperty Ortam için Airflow özelliklerinin yapılandırılması
  • İşlem özelliği:

    Adı Tür Açıklama
    konum Dize Airflow tümleştirme çalışma zamanı konumu varsayılan olarak veri fabrikası bölgesine ayarlanır. Farklı bir bölgede tümleştirme çalışma zamanı oluşturmak için gerekli bölgede yeni bir veri fabrikası oluşturun.
    computeSize Dize Airflow ortamınızın üzerinde çalışmasını istediğiniz işlem düğümünün boyutu. Örnek olarak Büyük veya Küçük verilebilir. Başlangıçta üç düğüm ayrılır.
    extraNodes integer Her ek düğüm üç çalışan daha ekler.
  • Airflow özelliği:

    Adı Tür Açıklama
    airflowVersion Dize Desteklenen Apache Airflow sürümü. Örneğin, 2.4.3.
    airflowRequirements Dizi<dizesi> Kullanmak istediğiniz Python kitaplıkları. Örneğin, ["flask-bcrypy=0.7.1"]. Virgülle ayrılmış bir liste olabilir.
    hava akışıEnvironmentVariables Nesne (Anahtar/Değer çifti) Kullanmak istediğiniz ortam değişkenleri. Örneğin, { "SAMPLE_ENV_NAME": "test" }.
    gitSyncProperties gitSyncProperty Git yapılandırma özellikleri.
    enableAADIntegration boolean Microsoft Entra Id'nin Workflow Orchestration Manager'da oturum açmasına izin verir.
    userName dize veya null Temel Kimlik Doğrulaması için kullanıcı adı.
    password dize veya null Temel Kimlik Doğrulaması için parola.
  • Git eşitleme özelliği:

    Adı Tür Açıklama
    gitServiceType Dize İstediğiniz deponun bulunduğu Git hizmeti. Değerler GitHub, ADO, GitLab veya BitBucket'tir.
    gitCredentialType Dize Git kimlik bilgilerinin türü. Değerler PAT (kişisel erişim belirteci için), SPN (yalnızca ADO tarafından desteklenir) ve Hiçbiri'dir.
    depo Dize Depo bağlantısı.
    Şube Dize Depoda kullanılacak dal.
    username Dize GitHub kullanıcı adı.
    Referans Dize PAT değeri.
    tenantId Dize Hizmet sorumlusu kiracı kimliği (yalnızca ADO tarafından desteklenir).
  • Yanıtlar:

    Veri Akışı Adı Durum kodu Type Açıklama
    Kabul edildi 200 Fabrika Tamam
    Yetkisiz Kategori 401 Bulut Hatası Daha fazla hata ayrıntısı içeren dizi

Örnekler

Aşağıdaki örnekleri gözden geçirin.

Örnek istek:

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

Örnek gövde:

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

Örnek yanıt:

Status code: 200 OK

Yanıt gövdesi:

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

Aşağıda bazı API yükü örnekleri verilmiştir:

  • PAT ile GitHub için Git eşitleme özellikleri:

    "gitSyncProperties":  {
            "gitServiceType": "Github",
            "gitCredentialType": "PAT",
            "repo":  <repo url>,
            "branch": <repo branch to sync>,
            "username": <username>,
            "credential": <personal access token>
    }
    
  • PAT ile ADO için Git eşitleme özellikleri:

    "gitSyncProperties":  {
            "gitServiceType": "ADO",
            "gitCredentialType": "PAT",
            "repo":  <repo url>,
            "branch": <repo branch to sync>,
            "username": <username>,
            "credential": <personal access token>
    }
    
  • Hizmet sorumlusu ile ADO için Git eşitleme özellikleri:

    "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>
    }
    
  • GitHub genel deposu için Git eşitleme özellikleri:

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

Git eşitlemesi ile özel paketi içeri aktarma

Bu isteğe bağlı işlem yalnızca özel paketleri kullandığınızda geçerlidir.

Bu işlem, özel paketinizin Git eşitlemesi aracılığıyla otomatik olarak eşitlendiğini varsayar. Bir ADO deposuna bağlanıyorsanız, paketi Workflow Orchestration Manager kullanıcı arabirimine yol ön eki /opt/airflow/git/\<repoName\>/ile birlikte bir gereksinim olarak eklersiniz. Diğer tüm Git hizmetleri için kullanın /opt/airflow/git/\<repoName\>.git/ .

Örneğin, özel paketiniz bir GitHub deposundaysa /dags/test/private.whl , gereksinimi /opt/airflow/git/\<repoName\>.git/dags/test/private.whl İş Akışı Düzenleme Yöneticisi ortamına eklemeniz gerekir.

İş Akışı Orchestration Manager tümleştirme çalışma zamanı oluşturulurken görüntülenen Airflow ortamı kurulum iletişim kutusundaki Airflow gereksinimleri bölümünü gösteren ekran görüntüsü.