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


Folyamatos integráció és teljesítés Azure Synapse Analytics-munkaterülethez

A folyamatos integráció (CI) a kód összeállításának és tesztelésének automatizálása minden alkalommal, amikor egy csapattag módosítja a verziókövetést. A folyamatos teljesítés (CD) a több tesztelési vagy előkészítési környezetből egy éles környezetbe történő létrehozás, tesztelés, konfigurálás és üzembe helyezés folyamata.

Egy Azure Synapse Analytics-munkaterületen a CI/CD áthelyezi az összes entitást egy környezetből (fejlesztés, tesztelés, éles üzem) egy másik környezetbe. A munkaterület egy másik munkaterületre való előléptetése kétrészes folyamat. Először használjon egy Azure Resource Manager-sablont (ARM-sablont) a munkaterület erőforrásainak (készletek és munkaterületek) létrehozásához vagy frissítéséhez. Ezután migrálhatja az olyan összetevőket, mint az SQL-szkriptek és a jegyzetfüzetek, a Spark-feladatdefiníciók, a folyamatok, az adathalmazok és egyéb összetevők a Synapse-munkaterület üzembehelyezési eszközeinek használatával az Azure DevOpsban vagy a GitHubon.

Ez a cikk azt ismerteti, hogyan automatizálhatja egy Azure Synapse-munkaterület üzembe helyezését több környezetben az Azure DevOps kiadási folyamata és a GitHub Actions használatával.

Előfeltételek

Az Azure Synapse-munkaterület több környezetben való üzembe helyezésének automatizálásához a következő előfeltételeknek és konfigurációknak kell teljesülniük. Választhatja az Azure DevOps vagy a GitHub használatát a beállításoknak vagy a meglévő beállításoknak megfelelően.

Azure DevOps

Az Azure DevOps használata esetén:

GitHub

GitHub használata esetén:

  • Hozzon létre egy GitHub-adattárat, amely tartalmazza az Azure Synapse-munkaterület összetevőit és a munkaterületsablont.
  • Győződjön meg arról, hogy ön által üzemeltetett futót hozott létre, vagy gitHubon üzemeltetett futót használ.

Microsoft Entra ID

  • Ha szolgáltatásnevet használ, a Microsoft Entra ID-ban hozzon létre egy egyszerű szolgáltatást az üzembe helyezéshez.
  • Ha felügyelt identitást használ, engedélyezze a rendszer által hozzárendelt felügyelt identitást az Azure-beli virtuális gépen ügynökként vagy futóként, majd adja hozzá az Azure Synapse Studióhoz Synapse-rendszergazdaként.
  • A műveletek végrehajtásához használja a Microsoft Entra rendszergazdai szerepkörét.

Azure Synapse Analytics

Feljegyzés

Ezeket az előfeltételeket automatizálhatja és üzembe helyezheti ugyanazzal a folyamattal, ARM-sablonnal vagy az Azure CLI-vel, de ezeket a folyamatokat ebben a cikkben nem ismertetjük.

  • A fejlesztéshez használt "forrás" munkaterületet egy Git-adattárral kell konfigurálni az Azure Synapse Studióban. További információ: Forrásvezérlés az Azure Synapse Studióban.

  • Állítson be egy üres munkaterületet a következőre való üzembe helyezéshez:

    1. Hozzon létre egy új Azure Synapse-munkaterületet.
    2. Adja meg a szolgáltatásnévnek az alábbi engedélyeket az új Synapse-munkaterülethez:
      • Microsoft.Synapse/workspaces/integrationruntimes/write
      • Microsoft.Synapse/workspaces/operationResults/read
      • Microsoft.Synapse/workspaces/read
    3. A munkaterületen ne konfigurálja a Git-adattár kapcsolatát.
    4. Az Azure Synapse-munkaterületen lépjen a Studio Manage Access Control (Hozzáférés-vezérlés kezelése>)>elemre. Rendelje hozzá a "Synapse Artifact Publishert" a szolgáltatásnévhez. Ha az üzembehelyezési folyamatnak felügyelt privát végpontokat kell üzembe helyeznie, akkor inkább rendelje hozzá a "Synapse-rendszergazdat".
    5. Ha olyan társított szolgáltatásokat használ, amelyek kapcsolati adatait az Azure Key Vault tárolja, ajánlott külön kulcstartókat tartani a különböző környezetekhez. Az egyes kulcstartókhoz külön engedélyszinteket is konfigurálhat. Előfordulhat például, hogy nem szeretné, hogy a csapattagok rendelkezzenek engedélyekkel az éles titkos kulcsokhoz. Ha ezt a megközelítést követi, javasoljuk, hogy minden fázisban tartsa meg ugyanazokat a titkos neveket. Ha megtartja ugyanazokat a titkos kódneveket, nem kell minden kapcsolati sztring paramétereznie a CI/CD-környezetekben, mert csak a kulcstartó neve változik, amely egy külön paraméter.

Egyéb előfeltételek

  • A Spark-készletek és a saját üzemeltetésű integrációs futtatókörnyezetek nem jönnek létre a munkaterület üzembe helyezési feladatában. Ha van egy társított szolgáltatása, amely egy saját üzemeltetésű integrációs modult használ, manuálisan hozza létre a futtatókörnyezetet az új munkaterületen.
  • Ha a fejlesztési munkaterület elemei az adott készletekhez vannak csatolva, győződjön meg arról, hogy a paraméterfájlban a cél munkaterületen lévő készletek neveit hozza létre vagy paraméterezi.
  • Ha a kiépített SQL-készletek a telepítés megkísérlésekor szünetelnek, az üzembe helyezés meghiúsulhat.

További információ: CI/CD az Azure Synapse Analytics 4. részében – A kiadási folyamat.

Kiadási folyamat beállítása az Azure DevOpsban

Ebben a szakaszban megtudhatja, hogyan helyezhet üzembe egy Azure Synapse-munkaterületet az Azure DevOpsban.

  1. Az Azure DevOpsban nyissa meg a kiadáshoz létrehozott projektet.

  2. A bal oldali menüben válassza a Pipelines Releases (Folyamatok kiadásai)> lehetőséget.

    Képernyőkép a Folyamatok, majd a Kiadások kiválasztásáról az Azure DevOps menüben.

  3. Válassza a New pipeline (Új folyamat) lehetőséget. Ha már rendelkezik meglévő folyamatokkal, válassza az Új>kiadási folyamat lehetőséget.

  4. Válassza az Üres feladat sablont.

    Képernyőkép az Üres feladat sablon kiválasztásáról.

  5. A Szakasznév mezőbe írja be a környezet nevét.

  6. Válassza az Összetevő hozzáadása lehetőséget, majd válassza ki az Azure Synapse Studióval konfigurált Git-adattárat a fejlesztői környezetben. Válassza ki azt a Git-adattárat, amelyben a készleteket és a munkaterület ARM-sablonját kezeli. Ha a GitHubot használja forrásként, hozzon létre egy szolgáltatáskapcsolatot a GitHub-fiókjához, és kérje le az adattárakat. További információ: szolgáltatáskapcsolatok.

    Képernyőkép a GitHub kiválasztásáról egy új összetevő közzétételi ágának hozzáadásához.

  7. Válassza ki az erőforrás ARM-sablonágát. Az Alapértelmezett verzió esetében válassza az Alapértelmezett ág Legújabb elemét.

    Az erőforrás ARM-sablonágának beállítását bemutató képernyőkép.

  8. Az összetevők alapértelmezett ágaként válassza ki a tárház közzétételi ágát vagy egyéb, Synapse-összetevőket tartalmazó nem közzétételi ágakat. Alapértelmezés szerint a közzétételi ág a következő workspace_publish: . Az Alapértelmezett verzió esetében válassza az Alapértelmezett ág Legújabb elemét.

    Az összetevők ágának beállítását bemutató képernyőkép.

Szakaszfeladat beállítása ARM-sablonhoz erőforrás létrehozásához és frissítéséhez

Ha olyan ARM-sablonnal rendelkezik, amely üzembe helyez egy erőforrást, például egy Azure Synapse-munkaterületet, egy Spark- és SQL-készletet vagy egy kulcstartót, adjon hozzá egy Azure Resource Manager-üzembehelyezési feladatot az erőforrások létrehozásához vagy frissítéséhez:

  1. A szakasznézetben válassza a Szakaszfeladatok megtekintése lehetőséget.

    A szakasznézet beállítását bemutató képernyőkép.

  2. Hozzon létre egy új feladatot. Keresse meg az ARM-sablon üzembe helyezését, majd válassza a Hozzáadás lehetőséget.

  3. Az üzembe helyezési feladatok lapon válassza ki a munkaterület előfizetését, erőforráscsoportját és helyét. Szükség esetén adja meg a hitelesítő adatokat.

  4. Művelet esetén válassza az Erőforráscsoport létrehozása vagy frissítése lehetőséget.

  5. Sablon esetén válassza a három pont (...) gombot. Nyissa meg a munkaterület ARM-sablonját.

  6. Sablonparaméterek esetén válassza a ... lehetőséget a paraméterfájl kiválasztásához.

    Képernyőkép a munkaterületről és a készletek üzembe helyezéséről.

  7. Sablonparaméterek felülbírálása esetén válassza a ...lehetőséget, majd adja meg a munkaterülethez használni kívánt paraméterértékeket.

  8. Üzembe helyezési mód esetén válassza a Növekményes lehetőséget.

  9. (Nem kötelező) Adja hozzá az Azure PowerShellt a támogatáshoz, és frissítse a munkaterületi szerepkör-hozzárendelést. Ha kiadási folyamattal hoz létre Egy Azure Synapse-munkaterületet, a rendszer a folyamat szolgáltatásnevét adja hozzá alapértelmezett munkaterület-rendszergazdaként. A PowerShell futtatásával más fiókok is hozzáférhetnek a munkaterülethez.

    Az engedélyek megadására vonatkozó PowerShell-szkript futtatását bemutató képernyőkép.

Figyelmeztetés

Teljes üzembe helyezési módban a rendszer törli az új ARM-sablonban nem megadott erőforráscsoport erőforrásait. További információ: Azure Resource Manager üzembe helyezési módok.

Szakaszfeladat beállítása az Azure Synapse-összetevők üzembe helyezéséhez

A Synapse-munkaterület üzembehelyezési bővítményével további elemeket helyezhet üzembe az Azure Synapse-munkaterületen. Az üzembe helyezhető elemek közé tartoznak az adathalmazok, az SQL-szkriptek és a jegyzetfüzetek, a Spark-feladatdefiníciók, az integrációs modul, az adatfolyam, a hitelesítő adatok és a munkaterület egyéb összetevői.

Üzembehelyezési bővítmény telepítése és hozzáadása

  1. Keresse meg és kérje le a bővítményt a Visual Studio Marketplace-ről.

    Képernyőkép a Synapse-munkaterület üzembehelyezési bővítményéről a Visual Studio Marketplace-en megjelenő módon.

  2. Válassza ki azt az Azure DevOps-szervezetet, amelyben telepíteni szeretné a bővítményt.

    Képernyőkép a Synapse-munkaterület üzembe helyezési bővítmény telepítéséhez szükséges szervezet kiválasztásáról.

  3. Győződjön meg arról, hogy az Azure DevOps-folyamat szolgáltatásnévéhez megkapta az előfizetési engedélyt, és a synapse-munkaterület rendszergazdájaként van hozzárendelve a munkaterülethez.

  4. Új feladat létrehozásához keresse meg a Synapse-munkaterület üzembe helyezését, majd válassza a Hozzáadás lehetőséget.

    Képernyőkép a Synapse-munkaterület üzembe helyezésének keresésével egy feladat létrehozásához.

Az üzembe helyezési feladat konfigurálása

Az üzembe helyezési feladat háromféle műveletet támogat, csak az érvényesítési, üzembe helyezési és érvényesítési és üzembe helyezési műveleteket.

Feljegyzés

Ez a munkaterület üzembehelyezési bővítménye nem kompatibilis visszamenőlegesen. Győződjön meg arról, hogy a legújabb verzió van telepítve és használva. A kiadási megjegyzést az Azure DevOps áttekintésében és a GitHub-művelet legújabb verziójában olvashatja el.

Az ellenőrzés a Nem közzétételi ág Synapse-összetevőinek ellenőrzése a feladattal, és a munkaterületsablon és a paramétersablonfájl létrehozása. Az érvényesítési művelet csak a YAML-folyamatban működik. Íme a minta YAML-fájl:

   pool:
     vmImage: ubuntu-latest

   resources:
     repositories:
     - repository: <repository name>
       type: git
       name: <name>
       ref: <user/collaboration branch>

   steps:
     - checkout: <name>
     - task: Synapse workspace deployment@2
       continueOnError: true    
       inputs:
         operation: 'validate'
         ArtifactsFolder: '$(System.DefaultWorkingDirectory)/ArtifactFolder'
         TargetWorkspaceName: '<target workspace name>'    

Az ellenőrzéssel és üzembe helyezéssel közvetlenül üzembe helyezheti a munkaterületet a nem közzétételi ágból az összetevő gyökérmappájával.

Feljegyzés

Az üzembe helyezési feladatnak le kell töltenie a függőségi JS-fájlokat erről a végpontról web.azuresynapse.net, amikor a művelettípust Érvényesítés vagy Ellenőrzés és üzembe helyezés elemet választja. Győződjön meg arról, hogy a végpont web.azuresynapse.net engedélyezett, ha a virtuális gépen engedélyezve vannak a hálózati házirendek.

Az érvényesítési és üzembe helyezési művelet a klasszikus és a YAML-folyamatban is működik. Íme a minta YAML-fájl:

   pool:
     vmImage: ubuntu-latest

   resources:
     repositories:
     - repository: <repository name>
       type: git
       name: <name>
       ref: <user/collaboration branch>

   steps:
     - checkout: <name>
     - task: Synapse workspace deployment@2
       continueOnError: true    
       inputs:
         operation: 'validateDeploy'
         ArtifactsFolder: '$(System.DefaultWorkingDirectory)/ArtifactFolder'
         TargetWorkspaceName: 'target workspace name'
         azureSubscription: 'target Azure resource manager connection name'
         ResourceGroupName: 'target workspace resource group'
         DeleteArtifactsNotInTemplate: true
         OverrideArmParameters: >
           -key1 value1
           -key2 value2

Üzembe helyezés A művelet üzembe helyezési bemenetei közé tartozik a Synapse-munkaterület sablonja és paramétersablonja, amely a közzététel után a munkaterület közzétételi ágában vagy az ellenőrzés után hozható létre. Ugyanaz, mint az 1.x verzió.

A használati eset alapján kiválaszthatja a művelettípusokat. Az alábbi rész egy példa az üzembe helyezésre.

  1. A feladatban válassza ki a művelet típusát üzembe helyezésként.

    Képernyőkép az üzembe helyezési művelet kiválasztásáról.

  2. A sablonfájl kiválasztásához válassza a feladatban a Sablon elem melletti ... lehetőséget.

  3. A sablonparaméterek mellett válassza a ... lehetőséget a paraméterfájl kiválasztásához.

  4. Válassza ki a munkaterület kapcsolatát, erőforráscsoportját és nevét.

  5. A sablonparaméterek felülbírálása mellett válassza a ... lehetőséget. Adja meg a munkaterülethez használni kívánt paraméterértékeket, beleértve a társított szolgáltatásokban használt kapcsolati sztring és fiókkulcsokat. További információ: CI/CD az Azure Synapse Analyticsben.

    A Synapse üzembehelyezési feladat beállítását bemutató képernyőkép a munkaterületen.

  6. A felügyelt privát végpont üzembe helyezése csak a 2.x verzióban támogatott. Győződjön meg arról, hogy a megfelelő verziót választja ki, és ellenőrizze a felügyelt privát végpontok üzembe helyezését a sablonban.

    Képernyőkép a 2.x verzió kiválasztásáról a privát végpontok synapse üzembe helyezési feladattal való üzembe helyezéséhez.

  7. Az eseményindítók kezeléséhez az eseményindító kapcsolóval leállíthatja az eseményindítókat az üzembe helyezés előtt. Emellett hozzáadhat egy feladatot is az eseményindítók újraindításához az üzembe helyezési feladat után.

    Képernyőkép az eseményindítók üzembe helyezés előtti és utáni kezeléséről.

Fontos

CI/CD-forgatókönyvekben a különböző környezetekben az integrációs modul típusának meg kell egyeznie. Ha például egy saját üzemeltetésű integrációs modullal rendelkezik a fejlesztési környezetben, akkor ugyanazt az integrációs modult más környezetekben, például tesztkörnyezetben és éles környezetben kell üzemeltetni. Hasonlóképpen, ha az integrációs futtatókörnyezeteket több fázisban osztja meg, az integrációs futtatókörnyezeteket össze kell kapcsolni, és minden környezetben önállóan kell üzemeltetni, például a fejlesztésben, a tesztelésben és az éles környezetben.

Kiadás létrehozása üzembe helyezéshez

Az összes módosítás mentése után a Kiadás létrehozása lehetőséget választva manuálisan hozhat létre kiadást. A kiadások létrehozásának automatizálásáról az Azure DevOps kiadási eseményindítóiban olvashat.

Képernyőkép az Új kiadási folyamat panelről, kiemelt Kiadás létrehozása lehetőséggel.

Kiadás beállítása a GitHub Actionsben

Ebben a szakaszban megtudhatja, hogyan hozhat létre GitHub-munkafolyamatokat az Azure Synapse-munkaterület üzembe helyezéséhez készült GitHub Actions használatával.

Az Azure Resource Managerhez készült GitHub Actions-sablonnal automatizálhatja egy ARM-sablon Üzembe helyezését az Azure-ban a munkaterülethez és a számítási készletekhez.

Munkafolyamat-fájl

GitHub Actions-munkafolyamat definiálása YAML-fájlban (.yml) az adattár /.github/workflows/ elérési útján. A definíció a munkafolyamatot alkotó különböző lépéseket és paramétereket tartalmazza.

A .yml fájl két szakaszból áll:

Section Tevékenységek
Hitelesítés 1. Adjon meg egy szolgáltatásnevet.
2. Hozzon létre egy GitHub-titkos kulcsot.
Telepítés Helyezze üzembe a munkaterület összetevőit.

GitHub Actions-titkos kulcsok konfigurálása

A GitHub Actions titkos kódjai titkosított környezeti változók. Bárki, aki közreműködői engedéllyel rendelkezik ehhez az adattárhoz, használhatja ezeket a titkos kulcsokat az adattár műveleteinek kezeléséhez.

  1. A GitHub-adattárban válassza a Beállítások lapot, majd az Új titkos kulcs>tárház titkos kulcsát.

    Képernyőkép az új adattárkulcs létrehozásához kiválasztandó GitHub-elemekről.

  2. Adjon hozzá egy új titkos kulcsot az ügyfélazonosítóhoz, és adjon hozzá egy új titkos ügyfélkulcsot, ha a szolgáltatásnevet használja az üzembe helyezéshez. Dönthet úgy is, hogy titkos kódként menti az előfizetés azonosítóját és a bérlőazonosítót.

Munkafolyamat hozzáadása

A GitHub-adattárban lépjen az Actions (Műveletek) elemre.

  1. Válassza a Munkafolyamat beállítása lehetőséget.

  2. A munkafolyamat-fájlban töröljön mindent a on: szakasz után. A fennmaradó munkafolyamat például az alábbi példához hasonlóan nézhet ki:

    name: CI
    
    on:
    push:
        branches: [ master ]
    pull_request:
        branches: [ master ]
    
  3. Nevezze át a munkafolyamatot. A Marketplace lapon keresse meg a Synapse-munkaterület üzembehelyezési műveletét, majd adja hozzá a műveletet.

    Képernyőkép a Synapse-munkaterület üzembe helyezési feladatának kereséséről a Marketplace lapon.

  4. Adja meg a szükséges értékeket és a munkaterületsablont:

    name: workspace deployment
    
    on:
        push:
            branches: [ publish_branch ]
    jobs:
        release:
            # You also can use the self-hosted runners.
            runs-on: windows-latest
            steps:
            # Checks out your repository under $GITHUB_WORKSPACE, so your job can access it.
            - uses: actions/checkout@v2
            - uses: azure/synapse-workspace-deployment@release-1.0
            with:
              TargetWorkspaceName: 'target workspace name'
              TemplateFile: './path of the TemplateForWorkspace.json'
              ParametersFile: './path of the TemplateParametersForWorkspace.json'
              OverrideArmParameters: './path of the parameters.yaml'
              environment: 'Azure Public'
              resourceGroup: 'target workspace resource group'
              clientId: ${{secrets.CLIENTID}}
              clientSecret:  ${{secrets.CLIENTSECRET}}
              subscriptionId: 'subscriptionId of the target workspace'
              tenantId: 'tenantId'
              DeleteArtifactsNotInTemplate: 'true'
              managedIdentity: 'False'
    
  5. Készen áll a módosítások véglegesítésére. Válassza a Véglegesítés indítása lehetőséget, adja meg a címet, majd adjon hozzá egy leírást (nem kötelező). Ezután válassza az Új fájl véglegesítése lehetőséget.

    A munkafolyamat GitHubon való véglegesítését bemutató képernyőkép.

    A fájl megjelenik az adattár .github/workflows mappájában.

    Feljegyzés

    A felügyelt identitás csak saját üzemeltetésű virtuális gépek esetén támogatott az Azure-ban. Ügyeljen arra, hogy a futót saját üzemeltetésűre állítsa. Engedélyezze a virtuális gép rendszer által hozzárendelt felügyelt identitását, és vegye fel az Azure Synapse Studióba Synapse-rendszergazdaként.

Az üzembe helyezés áttekintése

  1. A GitHub-adattárban lépjen az Actions (Műveletek) elemre.

  2. A munkafolyamat futtatásának részletes naplóinak megtekintéséhez nyissa meg az első eredményt:

    Képernyőkép a munkaterület üzembe helyezési jelének kiválasztásáról a GitHubon található Adattár műveleteiben.

Egyéni paraméterek létrehozása a munkaterületsablonban

Ha automatizált CI/CD-t használ, és módosítani szeretne néhány tulajdonságot az üzembe helyezés során, de a tulajdonságok alapértelmezés szerint nincsenek paraméterezve, felülbírálhatja az alapértelmezett paramétersablont.

Az alapértelmezett paramétersablon felülbírálásához hozzon létre egy template-parameters-definition.json nevű egyéni paramétersablont a Git-ág gyökérmappájában. Pontosan ezt a fájlnevet kell használnia. Amikor az Azure Synapse-munkaterület az együttműködési ágból tesz közzé, vagy az üzembe helyezési feladat ellenőrzi a többi ágban lévő összetevőket, beolvassa ezt a fájlt, és a konfigurációjával hozza létre a paramétereket. Ha az Azure Synapse-munkaterület nem találja ezt a fájlt, az alapértelmezett paramétersablont használja.

Egyéni paraméterszintaxis

Egyéni paraméterfájl létrehozásához az alábbi irányelveket használhatja:

  • Adja meg a tulajdonság elérési útját a megfelelő entitástípus alatt.
  • A tulajdonságnév * beállítása azt jelzi, hogy a tulajdonság minden tulajdonságát paraméterezni szeretné (csak az első szintig, nem rekurzív módon). Ehhez a konfigurációhoz megadhat kivételeket.
  • Egy tulajdonság értékének sztringként való beállítása azt jelzi, hogy paraméterezni szeretné a tulajdonságot. Használja a következő formátumot: <action>:<name>:<stype>.
    • <action> a következő karakterek egyike lehet:
      • = azt jelenti, hogy a paraméter alapértelmezett értékeként megtartja az aktuális értéket.
      • - azt jelenti, hogy ne tartsa meg a paraméter alapértelmezett értékét.
      • |Az Azure Key Vault titkos kulcsainak különleges esete kapcsolati sztring vagy kulcsokhoz.
    • <name> a paraméter neve. Ha üres, akkor a tulajdonság nevét veszi fel. Ha az érték egy - karakterrel kezdődik, a név rövidül. A rövidítés például AzureStorage1_properties_typeProperties_connectionString a következőre rövidül AzureStorage1_connectionString: .
    • <stype> a paraméter típusa. Ha <stype> üres, az alapértelmezett típus a következő string: . Támogatott értékek: string, securestring, int, boolobjectés secureobject array.
  • Ha megad egy tömböt a fájlban, az azt jelzi, hogy a sablon egyező tulajdonsága tömb. Az Azure Synapse a megadott definícióval végigfut a tömb összes objektumán. A második objektum, egy sztring lesz a tulajdonság neve, amelyet a rendszer az egyes iterációk paraméterének neveként használ.
  • A definíciók nem lehetnek erőforráspéldányokra jellemzőek. A definíciók az adott típusú összes erőforrásra vonatkoznak.
  • Alapértelmezés szerint az összes biztonságos sztring (például a Key Vault titkos kulcsai) és a biztonságos sztringek (például kapcsolati sztring, kulcsok és jogkivonatok) paraméterezve vannak.

Példa paramétersablon definícióra

Íme egy példa a paramétersablon definíciójának megjelenésére:

{
    "Microsoft.Synapse/workspaces/notebooks": {
        "properties": {
            "bigDataPool": {
                "referenceName": "="
            }
        }
    },
    "Microsoft.Synapse/workspaces/sqlscripts": {
        "properties": {
            "content": {
                "currentConnection": {
                    "*": "-"
                }
            }
        }
    },
    "Microsoft.Synapse/workspaces/pipelines": {
        "properties": {
            "activities": [{
                "typeProperties": {
                    "waitTimeInSeconds": "-::int",
                    "headers": "=::object",
                    "activities": [
                        {
                            "typeProperties": {
                                "url": "-:-webUrl:string"
                            }
                        }
                    ]
                }
            }]
        }
    },
    "Microsoft.Synapse/workspaces/integrationRuntimes": {
        "properties": {
            "typeProperties": {
                "*": "="
            }
        }
    },
    "Microsoft.Synapse/workspaces/triggers": {
        "properties": {
            "typeProperties": {
                "recurrence": {
                    "*": "=",
                    "interval": "=:triggerSuffix:int",
                    "frequency": "=:-freq"
                },
                "maxConcurrency": "="
            }
        }
    },
    "Microsoft.Synapse/workspaces/linkedServices": {
        "*": {
            "properties": {
                "typeProperties": {
                    "accountName": "=",
                    "username": "=",
                    "connectionString": "|:-connectionString:secureString",
                    "secretAccessKey": "|"
                }
            }
        },
        "AzureDataLakeStore": {
            "properties": {
                "typeProperties": {
                    "dataLakeStoreUri": "="
                }
            }
        },
        "AzureKeyVault": {
            "properties": {
                "typeProperties": {
                    "baseUrl": "|:baseUrl:secureString"
                },
                "parameters": {
                    "KeyVaultURL": {
                        "type": "=",
                        "defaultValue": "|:defaultValue:secureString"
                    }
                }
            }
        }
    },
    "Microsoft.Synapse/workspaces/datasets": {
        "*": {
            "properties": {
                "typeProperties": {
                    "folderPath": "=",
                    "fileName": "="
                }
            }
        }
    },
    "Microsoft.Synapse/workspaces/credentials" : {
        "properties": {
            "typeProperties": {
                "resourceId": "="
            }
        }
    }
}

Íme egy magyarázat az előző sablon létrehozásának módjáról, erőforrástípus szerint.

notebooks

  • Az elérési út bármely tulajdonsága properties/bigDataPool/referenceName az alapértelmezett értékkel van paraméterezve. Minden jegyzetfüzetfájlhoz paraméterezhet egy csatolt Spark-készletet.

sqlscripts

  • Az elérési úton mind properties/content/currentConnection a poolName databaseName tulajdonságok sztringként vannak paraméterezve, a sablon alapértelmezett értékei nélkül.

pipelines

  • Az activities/typeProperties/waitTimeInSeconds elérési út bármely tulajdonsága paraméteres. A folyamat minden olyan tevékenysége, amelynek kódszintű tulajdonsága el van nevezve waitTimeInSeconds (például a Wait tevékenység) számként van paraméterezve, alapértelmezett névvel. A tulajdonságnak nem lesz alapértelmezett értéke a Resource Manager-sablonban. Ehelyett a tulajdonság bevitele szükséges a Resource Manager üzembe helyezése során.
  • A headers tulajdonság (például egy Web tevékenységben) paraméterezve van az object objektum típusával. A headers tulajdonság alapértelmezett értéke megegyezik a forrás-előállító értékével.

integrationRuntimes

  • Az elérési út összes tulajdonsága typeProperties paraméterezve van a megfelelő alapértelmezett értékekkel. Két tulajdonság például típustulajdonságok alatt IntegrationRuntimes található: computeProperties és ssisProperties. Mindkét tulajdonságtípus a megfelelő alapértelmezett értékekkel és típusokkal (Object) jön létre.

triggers

  • Alatta typePropertieskét tulajdonság van paraméterezve:

    • A maxConcurrency tulajdonság alapértelmezett értékkel rendelkezik, és a string típus. A tulajdonság alapértelmezett paraméterneve a maxConcurrency következő <entityName>_properties_typeProperties_maxConcurrency: .
    • A recurrence tulajdonság paraméteres is. A tulajdonság minden tulajdonsága recurrence sztringként van paraméterezve, alapértelmezett értékekkel és paraméternevekkel. Kivételt képez a interval tulajdonság, amely típusként int van paraméterezve. A paraméter neve utótaggal <entityName>_properties_typeProperties_recurrence_triggerSuffixvan elnevítve. Hasonlóképpen, a freq tulajdonság egy sztring, és sztringként van paraméterezve. A freq tulajdonság paraméterezése azonban alapértelmezett érték nélkül történik. A név rövidítve és utótagként szerepel, például <entityName>_freq.

    Feljegyzés

    Jelenleg legfeljebb 50 eseményindító támogatott.

linkedServices

  • A társított szolgáltatások egyediek. Mivel a társított szolgáltatások és adathalmazok számos típussal rendelkeznek, típusspecifikus testreszabást is megadhat. Az előző példában a típus összes társított szolgáltatására AzureDataLakeStore alkalmazunk egy adott sablont. Az összes többi (a * karakterrel azonosított) esetében egy másik sablon lesz alkalmazva.
  • A connectionString tulajdonság paraméterezése értékként történik securestring . Nincs alapértelmezett értéke. A paraméter neve rövidül, és utótaggal van connectionStringelnevítve.
  • A secretAccessKey tulajdonság paraméterezése értékként AzureKeyVaultSecret történik (például egy Amazon S3 társított szolgáltatásban). A tulajdonság automatikusan paraméterezhető Azure Key Vault-titkos kódként, és lekéri a konfigurált kulcstartóból. Magát a kulcstartót is paraméterezheti.

datasets

  • Bár testre szabhatja az adathalmazok típusait, explicit *-szintű konfiguráció nem szükséges. Az előző példában az összes adathalmaztulajdonság typeProperties paraméterezve van.

Ajánlott eljárások a CI/CD-hez

Ha Git-integrációt használ az Azure Synapse-munkaterülettel, és rendelkezik egy CI/CD-folyamattal, amely a módosításokat a fejlesztésről a tesztelésre, majd az éles környezetbe helyezi át, az alábbi ajánlott eljárásokat javasoljuk:

  • Csak a fejlesztési munkaterület integrálása a Gittel. Ha Git-integrációt használ, csak a fejlesztő Azure Synapse-munkaterületet integrálhatja a Gittel. A tesztelési és éles munkaterületek módosításai CI/CD-n keresztül lesznek üzembe helyezve, és nincs szükség Git-integrációra.
  • Készletek előkészítése az összetevők migrálása előtt. Ha a fejlesztési munkaterület készleteihez SQL-szkript vagy jegyzetfüzet van csatlakoztatva, használja ugyanazt a nevet a különböző környezetekben lévő készletekhez.
  • Verziószámozás szinkronizálása az infrastruktúrában kódforgatókönyvként. Az infrastruktúra (hálózatok, virtuális gépek, terheléselosztók és kapcsolattopológia) leíró modellben való kezeléséhez használja ugyanazt a verziószámozást, amelyet a DevOps csapata a forráskódhoz használ.
  • Tekintse át az Azure Data Factory ajánlott eljárásait. A Data Factory használata esetén tekintse meg a Data Factory-összetevőkre vonatkozó ajánlott eljárásokat.

Összetevők üzembe helyezésének hibaelhárítása

Synapse-munkaterület üzembe helyezési feladatának használata Synapse-összetevők üzembe helyezéséhez

Az Azure Synapse-ban a Data Factorytől eltérően az összetevők nem Resource Manager-erőforrások. Az ARM-sablon üzembe helyezési feladatával nem helyezhet üzembe Azure Synapse-összetevőket. Ehelyett használja a Synapse-munkaterület üzembehelyezési feladatát az összetevők üzembe helyezéséhez, és használja az ARM-üzembe helyezési feladatot ARM-erőforrások (készletek és munkaterületek) üzembe helyezéséhez. Ez a feladat mindeközben csak olyan Synapse-sablonokat támogat, amelyekben az erőforrások Microsoft.Synapse típusúak. Ezzel a feladattal a felhasználók automatikusan üzembe helyezhetnek módosításokat bármely ágból anélkül, hogy manuálisan kattintanak a közzétételre a Synapse Studióban. Az alábbiakban néhány gyakori problémát tapasztalunk.

1. A közzététel sikertelen: a munkaterület arm-fájlja több mint 20 MB

A Git-szolgáltatóban van egy fájlméretkorlát, például az Azure DevOpsban a maximális fájlméret 20 Mb. Ha a munkaterületsablon fájlmérete meghaladja a 20 Mb-ot, ez a hiba akkor fordul elő, ha módosításokat tesz közzé a Synapse Studióban, amelyben a munkaterület sablonfájlja létrejön és szinkronizálódik a Git szolgáltatással. A probléma megoldásához a Synapse üzembe helyezési feladatával érvényesítheti vagy érvényesítheti és üzembe helyezheti a műveletet, hogy a munkaterület-sablonfájlt közvetlenül a folyamatügynökbe mentse, és manuális közzététel nélkül a Synapse Studióban.

2. Váratlan jogkivonat-hiba a kiadásban

Ha a paraméterfájl nem feloldott paraméterértékekkel rendelkezik, a kiadási folyamat nem elemzi a fájlt, és hibát okoz unexpected token . Javasoljuk, hogy felülbírálja a paramétereket, vagy használja a Key Vaultot a paraméterértékek lekéréséhez. A probléma megoldásához használhat kettős feloldó karaktereket is.

3. Az integrációs modul üzembe helyezése nem sikerült

Ha a munkaterületsablont egy felügyelt virtuális hálózat által engedélyezett munkaterületről hozza létre, és megpróbál egy normál munkaterületen üzembe helyezni, vagy fordítva, ez a hiba történik.

4. Váratlan karakter történt az érték elemzése során

A sablon nem elemezhető a sablonfájlban. Próbálja ki a fordított perjeleket, például \\Test01\Test

5. Nem sikerült beolvasni a munkaterület adatait, nem található

A cél-munkaterület adatai nincsenek megfelelően konfigurálva. Győződjön meg arról, hogy a létrehozott szolgáltatáskapcsolat hatóköre a munkaterületet tartalmazó erőforráscsoportra terjed ki.

6. Az összetevő törlése nem sikerült

A bővítmény összehasonlítja a közzétételi ágban található összetevőket a sablonnal, és a különbség alapján törli őket. Győződjön meg arról, hogy nem próbál törölni semmilyen olyan összetevőt, amely megtalálható a közzétételi ágban, és néhány más összetevő hivatkozással vagy függőségsel rendelkezik.

7. Az üzembe helyezés hiba miatt meghiúsult: json pozíció 0

Ha manuálisan próbálná frissíteni a sablont, ez a hiba történne. Győződjön meg arról, hogy nem szerkesztette manuálisan a sablont.

8. A dokumentum létrehozása vagy frissítése érvénytelen hivatkozás miatt meghiúsult

A synapse összetevőre egy másik is hivatkozhat. Ha paraméterezett egy összetevőben hivatkozott attribútumot, ügyeljen arra, hogy helyes és nem null értékű legyen

9. Nem sikerült beolvasni az üzembe helyezés állapotát a jegyzetfüzet üzembe helyezésében

Az üzembe helyezni kívánt jegyzetfüzet egy spark-készlethez van csatolva a munkaterület sablonfájljában, míg az üzembe helyezés során a készlet nem létezik a cél munkaterületen. Ha nem paraméterezi a készlet nevét, győződjön meg arról, hogy a készletek neve azonos a környezetek között.