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:
- Azure DevOps-projekt előkészítése a kiadási folyamat futtatásához.
- Adjon meg minden olyan felhasználót, aki a szervezet szintjén be fogja jelentkezni az Alapszintű kódot, hogy láthassa az adattárat.
- Adjon tulajdonosi engedélyt az Azure Synapse-adattárnak.
- Győződjön meg arról, hogy létrehozott egy saját üzemeltetésű Azure DevOps virtuálisgép-ügynököt, vagy használjon egy Azure DevOps által üzemeltetett ügynököt.
- Adjon engedélyeket egy Azure Resource Manager-szolgáltatáskapcsolat létrehozásához az erőforráscsoporthoz.
- A Microsoft Entra rendszergazdájának telepítenie kell az Azure DevOps Synapse Workspace Deployment Agent bővítményt az Azure DevOps-szervezetben.
- Hozzon létre vagy jelöljön ki egy meglévő szolgáltatásfiókot a folyamat futtatásához. Szolgáltatásfiók helyett személyes hozzáférési jogkivonatot is használhat, de a folyamat nem fog működni a felhasználói fiók törlése utá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:
- Hozzon létre egy új Azure Synapse-munkaterületet.
- 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
- A munkaterületen ne konfigurálja a Git-adattár kapcsolatát.
- 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".
- 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.
Az Azure DevOpsban nyissa meg a kiadáshoz létrehozott projektet.
A bal oldali menüben válassza a Pipelines Releases (Folyamatok kiadásai)> lehetőséget.
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.
Válassza az Üres feladat sablont.
A Szakasznév mezőbe írja be a környezet nevét.
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.
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 ö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.
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:
A szakasznézetben válassza a Szakaszfeladatok megtekintése lehetőséget.
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.
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.
Művelet esetén válassza az Erőforráscsoport létrehozása vagy frissítése lehetőséget.
Sablon esetén válassza a három pont (...) gombot. Nyissa meg a munkaterület ARM-sablonját.
Sablonparaméterek esetén válassza a ... lehetőséget a paraméterfájl kiválasztásához.
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.
Üzembe helyezési mód esetén válassza a Növekményes lehetőséget.
(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.
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
Keresse meg és kérje le a bővítményt a Visual Studio Marketplace-ről.
Válassza ki azt az Azure DevOps-szervezetet, amelyben telepíteni szeretné a bővítményt.
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.
Ú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.
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.
A feladatban válassza ki a művelet típusát üzembe helyezésként.
A sablonfájl kiválasztásához válassza a feladatban a Sablon elem melletti ... lehetőséget.
A sablonparaméterek mellett válassza a ... lehetőséget a paraméterfájl kiválasztásához.
Válassza ki a munkaterület kapcsolatát, erőforráscsoportját és nevét.
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 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.
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.
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.
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.
A GitHub-adattárban válassza a Beállítások lapot, majd az Új titkos kulcs>tárház titkos kulcsát.
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.
Válassza a Munkafolyamat beállítása lehetőséget.
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 ]
Nevezze át a munkafolyamatot. A Marketplace lapon keresse meg a Synapse-munkaterület üzembehelyezési műveletét, majd adja hozzá a műveletet.
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'
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 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
A GitHub-adattárban lépjen az Actions (Műveletek) elemre.
A munkafolyamat futtatásának részletes naplóinak megtekintéséhez nyissa meg az első eredményt:
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áulAzureStorage1_properties_typeProperties_connectionString
a következőre rövidülAzureStorage1_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
,bool
object
éssecureobject
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
apoolName
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 nevezvewaitTimeInSeconds
(például aWait
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 egyWeb
tevékenységben) paraméterezve van azobject
objektum típusával. Aheaders
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 alattIntegrationRuntimes
található:computeProperties
ésssisProperties
. Mindkét tulajdonságtípus a megfelelő alapértelmezett értékekkel és típusokkal (Object) jön létre.
triggers
Alatta
typeProperties
két tulajdonság van paraméterezve:- A
maxConcurrency
tulajdonság alapértelmezett értékkel rendelkezik, és astring
típus. A tulajdonság alapértelmezett paraméterneve amaxConcurrency
következő<entityName>_properties_typeProperties_maxConcurrency
: . - A
recurrence
tulajdonság paraméteres is. A tulajdonság minden tulajdonságarecurrence
sztringként van paraméterezve, alapértelmezett értékekkel és paraméternevekkel. Kivételt képez ainterval
tulajdonság, amely típuskéntint
van paraméterezve. A paraméter neve utótaggal<entityName>_properties_typeProperties_recurrence_triggerSuffix
van elnevítve. Hasonlóképpen, afreq
tulajdonság egy sztring, és sztringként van paraméterezve. Afreq
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.
- A
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éniksecurestring
. Nincs alapértelmezett értéke. A paraméter neve rövidül, és utótaggal vanconnectionString
elnevítve. - A
secretAccessKey
tulajdonság paraméterezése értékkéntAzureKeyVaultSecret
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.