Megosztás a következőn keresztül:


Automatikus közzététel a folyamatos integrációhoz és teljesítéshez (CI/CD)

A következőkre vonatkozik: Azure Data Factory Azure Synapse Analytics

Tipp.

Próbálja ki a Data Factoryt a Microsoft Fabricben, amely egy teljes körű elemzési megoldás a nagyvállalatok számára. A Microsoft Fabric az adattovábbítástól az adatelemzésig, a valós idejű elemzésig, az üzleti intelligenciáig és a jelentéskészítésig mindent lefed. Ismerje meg, hogyan indíthat új próbaverziót ingyenesen!

Feljegyzés

A Synapse Analytics a CI/CD-t is támogatja. További információért tekintse meg a Synapse Analytics CI/CD dokumentációját .

Áttekintés

A folyamatos integráció a kódbázis módosításainak automatikus tesztelését jelenti. A folyamatos teljesítés a lehető leghamarabb követi a folyamatos integráció során végbemenő tesztelést, és leküldi a módosításokat egy előkészítési vagy éles rendszerre.

Az Azure Data Factoryben a CI/CD azt jelenti, hogy a Data Factory-folyamatokat az egyik környezetből, például a fejlesztésből, a tesztelésből és az éles környezetből áthelyezi egy másikba. A Data Factory Azure Resource Manager-sablonokat (ARM-sablonokat) használ a különböző Data Factory-entitások, például folyamatok, adathalmazok és adatfolyamok konfigurációjának tárolására.

Az adat-előállítók egy másik környezetbe való előléptetéséhez két javasolt módszer létezik:

  • Automatizált üzembe helyezés a Data Factory és az Azure Pipelines integrálásával.
  • ARM-sablon manuális feltöltése a Data Factory felhasználói élményének az Azure Resource Managerrel való integrációjával.

További információ: Folyamatos integráció és teljesítés az Azure Data Factoryben.

Ez a cikk a ci/CD folyamatos üzembehelyezési fejlesztéseivel és automatizált közzétételi funkciójával foglalkozik.

Folyamatos üzembe helyezési fejlesztések

Az automatizált közzétételi funkció a Data Factory felhasználói felületéről az Összes ellenőrzése és az ARM-sablonfunkciók exportálása funkciót használja, és a logikát egy nyilvánosan elérhető npm-csomagon keresztül @microsoft/azure-data-factory-segédprogramokkal teszi elérhetővé. Emiatt programozott módon aktiválhatja ezeket a műveleteket ahelyett, hogy a Data Factory felhasználói felületére kellene lépnie, és manuálisan kell kiválasztania egy gombot. Ez a CI-/CD-folyamatok esetén valódi folyamatos integrációs élményt biztosít.

Feljegyzés

Ügyeljen arra, hogy a csomópont 18.x és annak kompatibilis verzióját használja, hogy elkerülje a régebbi verziókkal való csomagkompatibilitás miatt fellépő hibákat.

Aktuális CI/CD-folyamat

  1. Minden felhasználó módosítja a privát ágakat.
  2. A főkiszolgálóra való leküldés nem engedélyezett. A felhasználóknak lekéréses kérelmet kell létrehozniuk a módosítások elvégzéséhez.
  3. A felhasználóknak be kell töltenie a Data Factory felhasználói felületét, majd a Közzététel lehetőséget választva üzembe kell helyeznie a módosításokat a Data Factoryben, és létre kell hoznia az ARM-sablonokat a közzétételi ágban.
  4. A DevOps Release folyamat úgy van konfigurálva, hogy hozzon létre egy új kiadást, és telepítse az ARM-sablont minden alkalommal, amikor új módosítást küld a közzétételi ágba.

Az aktuális CI/CD-folyamatot bemutató diagram.

Manuális lépés

Az aktuális CI/CD-folyamatban a felhasználói élmény a közvetítő az ARM-sablon létrehozásához. Ennek eredményeképpen a felhasználónak a Data Factory felhasználói felületére kell lépnie, és manuálisan kell kiválasztania a Közzététel lehetőséget az ARM-sablon létrehozásának elindításához, majd a közzétételi ágba.

Az új CI/CD-folyamat

  1. Minden felhasználó módosítja a privát ágakat.
  2. A főkiszolgálóra való leküldés nem engedélyezett. A felhasználóknak lekéréses kérelmet kell létrehozniuk a módosítások elvégzéséhez.
  3. Az Azure DevOps-folyamat buildelése minden alkalommal aktiválódik, amikor új véglegesítést hajtanak végre a főkiszolgálón. Ellenőrzi az erőforrásokat, és létrehoz egy ARM-sablont összetevőként, ha az ellenőrzés sikeres.
  4. A DevOps Release folyamat úgy van konfigurálva, hogy hozzon létre egy új kiadást, és telepítse az ARM-sablont minden alkalommal, amikor egy új build elérhetővé válik.

Az új CI/CD-folyamatot bemutató diagram.

Mi változott?

  • Most már van egy buildelési folyamatunk, amely devOps-buildelési folyamatot használ.
  • A buildelési folyamat az ADFUtilities NPM-csomagot használja, amely ellenőrzi az összes erőforrást, és létrehozza az ARM-sablonokat. Ezek a sablonok lehetnek önállóak és csatolhatók.
  • A buildelési folyamat felelős a Data Factory-erőforrások ellenőrzéséért és az ARM-sablon létrehozásához a Data Factory felhasználói felülete (Közzététel gomb) helyett.
  • A DevOps kiadási definíciója ezt az új buildelési folyamatot fogja használni a Git-összetevő helyett.

Feljegyzés

Továbbra is használhatja a meglévő mechanizmust, amely az adf_publish ág, vagy használhatja az új folyamatot. Mindkettő támogatott.

Csomag – áttekintés

Jelenleg két parancs érhető el a csomagban:

  • ARM-sablon exportálása
  • Érvényesítés

ARM-sablon exportálása

Futtassa npm run build export <rootFolder> <factoryId> [outputFolder] az ARM-sablon exportálását egy adott mappa erőforrásaival. Ez a parancs egy ellenőrzési ellenőrzést is futtat az ARM-sablon létrehozása előtt. Íme egy példa a testResourceGroup nevű erőforráscsoport használatával:

npm run build export C:\DataFactories\DevDataFactory /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.DataFactory/factories/DevDataFactory ArmTemplateOutput
  • RootFolder egy kötelező mező, amely a Data Factory-erőforrások helyét jelöli.
  • FactoryId egy kötelező mező, amely a Data Factory erőforrás-azonosítóját jelöli a formátumban /subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.DataFactory/factories/<dfName>.
  • OutputFolder nem kötelező paraméter, amely megadja a létrehozott ARM-sablon mentésének relatív elérési útját.

Mostantól általánosan elérhető, hogy csak a frissített eseményindítók állíthatók le/indíthatók el, és egyesítve lesznek a fent látható paranccsal.

Feljegyzés

A létrehozott ARM-sablon nem jelenik meg a gyár élő verziójában. Az üzembe helyezést CI/CD-folyamattal kell elvégezni.

Érvényesítés

Futtassa npm run build validate <rootFolder> <factoryId> egy adott mappa összes erőforrásának érvényesítését. Példa:

npm run build validate C:\DataFactories\DevDataFactory /subscriptions/xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx/resourceGroups/testResourceGroup/providers/Microsoft.DataFactory/factories/DevDataFactory
  • RootFolder egy kötelező mező, amely a Data Factory-erőforrások helyét jelöli.
  • FactoryId egy kötelező mező, amely a Data Factory erőforrás-azonosítóját jelöli a formátumban /subscriptions/<subId>/resourceGroups/<rgName>/providers/Microsoft.DataFactory/factories/<dfName>.

Azure-folyamat létrehozása

Bár az npm-csomagok többféleképpen is felhasználhatók, az egyik elsődleges előny az Azure Pipeline használatával történő használat. Az együttműködési ágba való minden egyes egyesítéskor elindítható egy folyamat, amely először ellenőrzi az összes kódot, majd exportálja az ARM-sablont egy kiadási folyamat által felhasználható buildösszetevőbe . Az, hogy miben különbözik az aktuális CI/CD-folyamattól, az az, hogy a kiadási folyamatot a meglévő adf_publish ág helyett erre az összetevőre fogja mutatni.

A kezdéshez hajtsa végre az alábbi lépéseket:

  1. Nyisson meg egy Azure DevOps-projektet, és nyissa meg a Pipelinest. Válassza a New pipeline (Új folyamat) lehetőséget.

    Képernyőkép az Új folyamat gombról.

  2. Válassza ki azt az adattárat, ahová menteni szeretné a folyamat YAML-szkriptét. Javasoljuk, hogy mentse egy buildmappába a Data Factory-erőforrások adattárában. Győződjön meg arról, hogy van egy package.json fájl az adattárban, amely tartalmazza a csomag nevét az alábbi példában látható módon:

    {
        "scripts":{
            "build":"node node_modules/@microsoft/azure-data-factory-utilities/lib/index"
        },
        "dependencies":{
            "@microsoft/azure-data-factory-utilities":"^1.0.0"
        }
    } 
    
  3. Válassza a Starter-folyamatot. Ha feltöltötte vagy egyesítette a YAML-fájlt, az alábbi példában látható módon közvetlenül erre is rámutathat, és szerkesztheti azt.

    Képernyőkép a Starter-folyamatról.

    # 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. Adja meg a YAML-kódot. Javasoljuk, hogy a YAML-fájlt használja kiindulási pontként.

  5. Mentés és futtatás. Ha a YAML-t használta, a rendszer minden alkalommal aktiválódik, amikor a fő ág frissül.

Feljegyzés

A létrehozott összetevők már tartalmaznak üzembe helyezés előtti és utáni szkripteket az eseményindítókhoz, ezért ezeket nem szükséges manuálisan hozzáadni. Az üzembe helyezéskor azonban továbbra is hivatkoznia kell a leállítási és indítási triggerek dokumentációjára a megadott szkript végrehajtásához.

További információ a Data Factory folyamatos integrációjáról és kézbesítéséről: Folyamatos integráció és teljesítés az Azure Data Factoryben.