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:
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.
İş 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.
Aşağıdaki desteklenen Git hizmet türlerinden birini seçin:
- GitHub
- GÜRÜLTÜ
- GitLab
- BitBucket
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
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.
Kalan alanları gerekli bilgilerle doldurun.
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ı. dal 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/aaaa0a0a-bb1b-cc2c-dd3d-eeeeee4e4e4e/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.