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.

Azure DevOps

GitHub

  • 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-azonosító

  • 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. 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 Rendszergazda istrator"-t.
    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.

    Screenshot that shows selecting Pipelines and then Releases on the Azure DevOps menu.

  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.

    Screenshot that shows selecting the Empty job template.

  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.

    Screenshot that shows selecting GitHub to add a publish branch for a new artifact.

  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.

    Screenshot that shows setting the resource ARM template branch.

  8. Az összetevők alapértelmezett ágaként válassza ki az adattár közzétételi ágát vagy más nem közzétételi ágakat, amelyek synapse-összetevőket is tartalmaznak. 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.

    Screenshot that shows setting the artifacts branch.

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.

    Screenshot that shows setting the stage view.

  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.

    Screenshot that shows the: workspace and pools deploy.

  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.

    Screenshot that demonstrates running a PowerShell script to grant permissions.

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.

    Screenshot that shows the Synapse workspace deployment extension as it appears in Visual Studio Marketplace.

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

    Screenshot that shows selecting an organization in which to install the Synapse workspace deployment extension.

  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.

    Screenshot that shows searching for Synapse workspace deployment to create a task.

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

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

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 tevékenységgel, é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. A YAML-mintafájl az alábbi módon érhető el:

   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. A YAML-mintafájl az alábbi módon érhető el:

   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. Ez megegyezik az 1.x verzióval.

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.

    Screenshot that shows the selection of operation deploy.

  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.

    Screenshot that shows setting up the Synapse deployment task for the workspace.

  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 sablonban való üzembe helyezését.

    Screenshot that shows selecting version 2.x to deploy private endpoints with synapse deployment task.

  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.

    Screenshot that shows managing triggers before and after deployment.

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.

Screenshot that shows the New release pipeline pane, with Create release highlighted.

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:

Szakasz 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 Gépház lapot, majd válassza az Új titkos kulcs tárház>titkos kulcsát.

    Screenshot that shows the GitHub elements to select to create a new repository secret.

  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.

    Screenshot that shows searching for the Synapse workspace deployment task on the Marketplace tab.

  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.

    Screenshot that shows committing the workflow in GitHub.

    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:

    Screenshot that shows selecting the workspace deployment log in the repository Actions in GitHub.

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 secureobjectarray.
  • 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 poolNamedatabaseName 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 * karakter használatával azonosított) esetében a rendszer egy másik sablont alkalmaz.
  • 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

Fájlméret-korlátozás van érvényben a Git-szolgáltatón – az Azure DevOpsban például 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ületsablon egy felügyelt virtuális hálózat által engedélyezett munkaterületről lett létrehozva, é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 meg menekülve a hátsó perjelek, pl. \\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.

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

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.

9. 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, győződjön meg arról, hogy helyes és nem null értéket ad meg neki.

10. 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.