Aracılığıyla paylaş


Sürekli tümleştirme ve teslim (CI/CD) için otomatik yayımlama

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

Synapse Analytics, CI/CD'yi de destekler. Daha fazla bilgi için Synapse Analytics CI/CD belgelerine bakın .

Genel bakış

Sürekli tümleştirme, kod tabanınızda yapılan her değişikliği otomatik olarak test etme uygulamasıdır. Mümkün olan en kısa sürede sürekli teslim, sürekli tümleştirme sırasında gerçekleşen testi takip eder ve değişiklikleri bir hazırlama veya üretim sistemine iletir.

Azure Data Factory'de CI/CD, Data Factory işlem hatlarını geliştirme, test ve üretim gibi bir ortamdan diğerine taşımak anlamına gelir. Data Factory işlem hatları, veri kümeleri ve veri akışları gibi çeşitli Data Factory varlıklarınızın yapılandırmasını depolamak için Azure Resource Manager şablonlarını (ARM şablonları) kullanır.

Bir veri fabrikasını başka bir ortama yükseltmek için önerilen iki yöntem vardır:

  • Data Factory'nin Azure Pipelines ile tümleştirilmesini kullanarak otomatik dağıtım.
  • Azure Resource Manager ile Data Factory kullanıcı deneyimi tümleştirmesini kullanarak ARM şablonunu el ile karşıya yükleme.

Daha fazla bilgi için bkz . Azure Data Factory'de sürekli tümleştirme ve teslim.

Bu makale, SÜREKLI dağıtım geliştirmelerine ve CI/CD için otomatik yayımlama özelliğine odaklanır.

Sürekli dağıtım geliştirmeleri

Otomatik yayımlama özelliği, Data Factory kullanıcı deneyiminden Tümünü doğrula ve ARM şablonunu dışarı aktar özelliklerini alır ve mantığı genel kullanıma açık bir npm paketi @microsoft/azure-data-factory-utilities aracılığıyla kullanılabilir hale getirir. Bu nedenle, Data Factory kullanıcı arabirimine gidip el ile bir düğme seçmek yerine bu eylemleri program aracılığıyla tetikleyebilirsiniz. Bu yetenek, CI/CD işlem hatlarınıza daha gerçek bir sürekli tümleştirme deneyimi sağlayacaktır.

Not

Eski sürümlerle paket uyumsuzluğu nedeniyle oluşabilecek hataları önlemek için düğüm 18.x ve uyumlu sürümünü kullandığınızdan emin olun.

Geçerli CI/CD akışı

  1. Her kullanıcı kendi özel dallarında değişiklik yapar.
  2. Ana şablona göndermeye izin verilmez. Kullanıcıların değişiklik yapmak için çekme isteği oluşturması gerekir.
  3. Kullanıcıların Data Factory kullanıcı arabirimini yüklemesi ve Değişiklikleri Data Factory'ye dağıtmak ve yayımlama dalında ARM şablonları oluşturmak için Yayımla'yı seçmesi gerekir.
  4. DevOps Yayın işlem hattı, yayımlama dalına her yeni değişiklik gönderildiğinde yeni bir sürüm oluşturacak ve ARM şablonunu dağıtacak şekilde yapılandırılır.

Geçerli CI/CD akışını gösteren diyagram.

El ile adım

Geçerli CI/CD akışında kullanıcı deneyimi ARM şablonunu oluşturmak için aracıdır. Sonuç olarak, kullanıcının Data Factory kullanıcı arabirimine gitmesi ve ARM şablonu oluşturmayı başlatmak ve yayımlama dalına bırakmak için El ile Yayımla'yı seçmesi gerekir.

Yeni CI/CD akışı

  1. Her kullanıcı kendi özel dallarında değişiklik yapar.
  2. Ana şablona göndermeye izin verilmez. Kullanıcıların değişiklik yapmak için çekme isteği oluşturması gerekir.
  3. Azure DevOps işlem hattı derlemesi, ana işlemeye her yeni işleme yapıldığında tetikleniyor. Doğrulama başarılı olursa kaynakları doğrular ve yapıt olarak bir ARM şablonu oluşturur.
  4. DevOps Yayın işlem hattı, yeni bir sürüm oluşturacak ve her yeni derleme kullanılabilir olduğunda ARM şablonunu dağıtacak şekilde yapılandırılır.

Yeni CI/CD akışını gösteren diyagram.

Ne değişti?

  • Artık DevOps derleme işlem hattı kullanan bir derleme işlemimiz var.
  • Derleme işlem hattı, tüm kaynakları doğrulayan ve ARM şablonlarını oluşturan ADFUtilities NPM paketini kullanır. Bu şablonlar tek ve bağlantılı olabilir.
  • Derleme işlem hattı Data Factory kaynaklarının doğrulanmasından ve Data Factory kullanıcı arabirimi yerine ARM şablonunun oluşturulmasından sorumludur (Yayımla düğmesi).
  • DevOps yayın tanımı artık Git yapıtı yerine bu yeni derleme işlem hattını kullanacak.

Not

Dal olan adf_publish mevcut mekanizmayı kullanmaya devam edebilir veya yeni akışı kullanabilirsiniz. Her ikisi de desteklenir.

Pakete genel bakış

Şu anda pakette iki komut vardır:

  • ARM şablonunu dışarı aktarma
  • Doğrulama

ARM şablonunu dışarı aktarma

Belirli bir klasörün kaynaklarını kullanarak ARM şablonunu dışarı aktarmak için komutunu çalıştırın npm run build export <rootFolder> <factoryId> [outputFolder] . Bu komut, ARM şablonunu oluşturmadan önce bir doğrulama denetimi de çalıştırır. Aşağıda testResourceGroup adlı bir kaynak grubunun kullanıldığı bir örnek verilmiştir:

npm run build export C:\DataFactories\DevDataFactory /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.DataFactory/factories/DevDataFactory ArmTemplateOutput
  • RootFolder , Data Factory kaynaklarının bulunduğu yeri temsil eden zorunlu bir alandır.
  • FactoryId , Data Factory kaynak kimliğini biçiminde /subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.DataFactory/factories/<dfName>temsil eden zorunlu bir alandır.
  • OutputFolder , oluşturulan ARM şablonunu kaydetmek için göreli yolu belirten isteğe bağlı bir parametredir.

Yalnızca güncelleştirilmiş tetikleyicileri durdurma/başlatma özelliği genel kullanıma sunulmuştur ve yukarıda gösterilen komutla birleştirilir.

Not

Oluşturulan ARM şablonu fabrikanın canlı sürümünde yayımlanmaz. Dağıtım, CI/CD işlem hattı kullanılarak yapılmalıdır.

Doğrulama

Belirli bir klasörün tüm kaynaklarını doğrulamak için komutunu çalıştırın npm run build validate <rootFolder> <factoryId> . Bir örnek aşağıda verilmiştir:

npm run build validate C:\DataFactories\DevDataFactory /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.DataFactory/factories/DevDataFactory
  • RootFolder , Data Factory kaynaklarının bulunduğu yeri temsil eden zorunlu bir alandır.
  • FactoryId , Data Factory kaynak kimliğini biçiminde /subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.DataFactory/factories/<dfName>temsil eden zorunlu bir alandır.

Azure işlem hattı oluşturma

Npm paketleri çeşitli şekillerde kullanılabilse de, birincil avantajlardan biri Azure Pipeline aracılığıyla kullanılmaktır. İşbirliği dalınızdaki her birleştirmede, önce kodun tamamını doğrulayan ve ardından ARM şablonunu yayın işlem hattı tarafından kullanılabilecek bir derleme yapıtına aktaran bir işlem hattı tetiklenebilir. Geçerli CI/CD işleminden farkı, yayın işlem hattınızı mevcut adf_publish dal yerine bu yapıta işaret edecek olmanızdır.

Başlamak için şu adımları izleyin:

  1. Bir Azure DevOps projesi açın ve İşlem Hatları'na gidin. Yeni İşlem Hattı’nı seçin.

    Yeni işlem hattı düğmesini gösteren ekran görüntüsü.

  2. İşlem hattı YAML betiğinizi kaydetmek istediğiniz depoyu seçin. Data Factory kaynaklarınızın aynı deposundaki bir derleme klasörüne kaydetmenizi öneririz. Aşağıdaki örnekte gösterildiği gibi depoda paket adını içeren bir package.json dosyası olduğundan emin olun:

    {
        "scripts":{
            "build":"node node_modules/@microsoft/azure-data-factory-utilities/lib/index"
        },
        "dependencies":{
            "@microsoft/azure-data-factory-utilities":"^1.0.0"
        }
    } 
    
  3. Başlangıç işlem hattı'ı seçin. YaML dosyasını aşağıdaki örnekte gösterildiği gibi karşıya yüklediyseniz veya birleştirdiyseniz, doğrudan bu dosyayı işaret edebilir ve düzenleyebilirsiniz.

    Starter işlem hattını gösteren ekran görüntüsü.

    # Sample YAML file to validate and export an ARM template into a build artifact
    # Requires a package.json file located in the target repository
    
    trigger:
    - main #collaboration branch
    
    pool:
      vmImage: 'ubuntu-latest'
    
    steps:
    
    # Installs Node and the npm packages saved in your package.json file in the build
    
    - task: UseNode@1
      inputs:
        version: '18.x'
      displayName: 'Install Node.js'
    
    - task: Npm@1
      inputs:
        command: 'install'
        workingDir: '$(Build.Repository.LocalPath)/<folder-of-the-package.json-file>' #replace with the package.json folder
        verbose: true
      displayName: 'Install npm package'
    
    # Validates all of the Data Factory resources in the repository. You'll get the same validation errors as when "Validate All" is selected.
    # Enter the appropriate subscription and name for the source factory. Either of the "Validate" or "Validate and Generate ARM temmplate" options are required to perform validation. Running both is unnecessary.
    
    - task: Npm@1
      inputs:
        command: 'custom'
        workingDir: '$(Build.Repository.LocalPath)/<folder-of-the-package.json-file>' #replace with the package.json folder
        customCommand: 'run build validate $(Build.Repository.LocalPath)/<Root-folder-from-Git-configuration-settings-in-ADF> /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/<Your-ResourceGroup-Name>/providers/Microsoft.DataFactory/factories/<Your-Factory-Name>'
      displayName: 'Validate'
    
    # Validate and then generate the ARM template into the destination folder, which is the same as selecting "Publish" from the UX.
    # The ARM template generated isn't published to the live version of the factory. Deployment should be done by using a CI/CD pipeline. 
    
    - task: Npm@1
      inputs:
        command: 'custom'
        workingDir: '$(Build.Repository.LocalPath)/<folder-of-the-package.json-file>' #replace with the package.json folder
        customCommand: 'run build export $(Build.Repository.LocalPath)/<Root-folder-from-Git-configuration-settings-in-ADF> /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/<Your-ResourceGroup-Name>/providers/Microsoft.DataFactory/factories/<Your-Factory-Name> "ArmTemplate"'
    #For using preview that allows you to only stop/ start triggers that are modified, please comment out the above line and uncomment the below line. Make sure the package.json contains the build-preview command. 
     #customCommand: 'run build-preview export $(Build.Repository.LocalPath) /subscriptions/222f1459-6ebd-4896-82ab-652d5f6883cf/resourceGroups/GartnerMQ2021/providers/Microsoft.DataFactory/factories/Dev-GartnerMQ2021-DataFactory "ArmTemplate"'
      displayName: 'Validate and Generate ARM template'
    
    # Publish the artifact to be used as a source for a release pipeline.
    
    - task: PublishPipelineArtifact@1
      inputs:
        targetPath: '$(Build.Repository.LocalPath)/<folder-of-the-package.json-file>/ArmTemplate' #replace with the package.json folder
        artifact: 'ArmTemplates'
        publishLocation: 'pipeline'
    
  4. YAML kodunuzu girin. BAŞLANGıÇ noktası olarak YAML dosyasını kullanmanızı öneririz.

  5. Kaydet ve çalıştır. YAML kullandıysanız, ana dal her güncelleştirildiğinde tetiklenir.

Not

Oluşturulan yapıtlar zaten tetikleyiciler için dağıtım öncesi ve sonrası betikleri içerdiğinden bunları el ile eklemek gerekmez. Ancak, dağıtım sırasında sağlanan betiği yürütmek için tetikleyicileri durdurma ve başlatma belgelerine başvurmanız gerekir.

Data Factory'de sürekli tümleştirme ve teslim hakkında daha fazla bilgi edinin: Azure Data Factory'de sürekli tümleştirme ve teslim.