Azure Synapse Analytics çalışma alanı için sürekli tümleştirme ve teslim
Sürekli tümleştirme (CI), bir ekip üyesi sürüm denetimine bir değişiklik işlediği her seferde kodun derlemesini ve testini otomatikleştirme işlemidir. Sürekli teslim (CD), birden çok test veya hazırlama ortamından üretim ortamına derleme, test etme, yapılandırma ve dağıtma işlemidir.
Azure Synapse Analytics çalışma alanında CI/CD tüm varlıkları bir ortamdan (geliştirme, test, üretim) başka bir ortama taşır. Çalışma alanınızı başka bir çalışma alanına yükseltme, iki aşamadan oluşan bir işlemdir. İlk olarak, çalışma alanı kaynaklarını (havuzlar ve çalışma alanı) oluşturmak veya güncelleştirmek için bir Azure Resource Manager şablonu (ARM şablonu) kullanın. Ardından Azure DevOps'ta veya GitHub'da Synapse Çalışma Alanı Dağıtım araçlarını kullanarak SQL betikleri ve not defterleri, Spark iş tanımları, işlem hatları, veri kümeleri ve diğer yapıtlar gibi yapıtları geçirin.
Bu makalede, Azure Synapse çalışma alanının birden çok ortam için dağıtımını otomatikleştirmek için Azure DevOps yayın işlem hattının ve GitHub Actions'ın nasıl kullanılacağı özetlenmiştir.
Önkoşullar
Azure Synapse çalışma alanının birden çok ortam için dağıtımını otomatikleştirmek için aşağıdaki önkoşulların ve yapılandırmaların geçerli olması gerekir. Tercihinize veya mevcut kuruluma göre Azure DevOps veya GitHub kullanmayı tercih edebilirsiniz.
Azure DevOps
Azure DevOps kullanıyorsanız:
- Yayın işlem hattını çalıştırmak için bir Azure DevOps projesi hazırlayın.
- Kodu iade edecek kullanıcılara, depoyu görebilmeleri için kuruluş düzeyinde Temel erişim izni verin.
- Azure Synapse deposuna Sahip izni verin.
- Şirket içinde barındırılan bir Azure DevOps VM aracısı oluşturduğunuzdan veya Azure DevOps barındırılan aracı kullandığınızdan emin olun.
- Kaynak grubu için Azure Resource Manager hizmet bağlantısı oluşturma izinleri verin.
- Microsoft Entra yöneticisinin Azure DevOps kuruluşuna Azure DevOps Synapse Çalışma Alanı Dağıtım Aracısı uzantısını yüklemesi gerekir.
- İşlem hattının farklı çalışması için mevcut bir hizmet hesabı oluşturun veya bu hesabın adayını belirleyin. Hizmet hesabı yerine kişisel erişim belirteci kullanabilirsiniz, ancak kullanıcı hesabı silindikten sonra işlem hatlarınız çalışmaz.
GitHub
GitHub kullanıyorsanız:
- Azure Synapse çalışma alanı yapıtlarını ve çalışma alanı şablonunu içeren bir GitHub deposu oluşturun.
- Şirket içinde barındırılan bir çalıştırıcı oluşturduğunuzdan veya GitHub'da barındırılan bir çalıştırıcı kullandığınızdan emin olun.
Microsoft Entra Kimlik
- Hizmet sorumlusu kullanıyorsanız, Microsoft Entra Id'de dağıtım için kullanılacak bir hizmet sorumlusu oluşturun.
- Yönetilen kimlik kullanıyorsanız Azure'daki VM'nizde aracı veya çalıştırıcı olarak sistem tarafından atanan yönetilen kimliği etkinleştirin ve ardından Synapse yöneticisi olarak Azure Synapse Studio'ya ekleyin.
- Bu eylemleri tamamlamak için Microsoft Entra yönetici rolünü kullanın.
Azure Synapse Analytics
Not
Aynı işlem hattını, ARM şablonunu veya Azure CLI'yı kullanarak bu önkoşulları otomatikleştirebilir ve dağıtabilirsiniz, ancak bu işlemler bu makalede açıklanmamıştır.
Geliştirme için kullanılan "kaynak" çalışma alanının Azure Synapse Studio'daki bir Git deposuyla yapılandırılması gerekir. Daha fazla bilgi için bkz . Azure Synapse Studio'da kaynak denetimi.
Dağıtılacak boş bir çalışma alanı ayarlayın:
- Yeni bir Azure Synapse çalışma alanı oluşturun.
- Hizmet sorumlusuna yeni Synapse çalışma alanı için aşağıdaki izinleri verin:
- Microsoft.Synapse/workspaces/integrationruntimes/write
- Microsoft.Synapse/workspaces/operationResults/read
- Microsoft.Synapse/workspaces/read
- Çalışma alanında Git deposu bağlantısını yapılandırmayın.
- Azure Synapse çalışma alanında Studio>Erişim Denetimini Yönet'e> gidin. 4. Azure Synapse çalışma alanında Studio > Erişim Denetimini Yönet'e > gidin. Hizmet sorumlusuna "Synapse Artifact Publisher" atayın. Dağıtım işlem hattının yönetilen özel uç noktaları dağıtması gerekiyorsa bunun yerine "Synapse Yöneticisi"ni atayın.
- Bağlantı bilgileri Azure Key Vault'ta depolanan bağlı hizmetleri kullandığınızda, farklı ortamlar için ayrı anahtar kasaları bulundurmanız önerilir. Ayrıca her anahtar kasası için ayrı izin düzeyleri yapılandırabilirsiniz. Örneğin, ekip üyelerinizin üretim gizli dizileri için izinleri olmasını istemeyebilirsiniz. Bu yaklaşımı izlerseniz, tüm aşamalarda aynı gizli dizi adlarını tutmanızı öneririz. Aynı gizli dizi adlarını saklarsanız, ci/CD ortamlarında her bağlantı dizesi parametrelemeniz gerekmez çünkü değişen tek şey anahtar kasası adıdır ve bu da ayrı bir parametredir.
Diğer önkoşullar
- Spark havuzları ve şirket içinde barındırılan tümleştirme çalışma zamanları bir çalışma alanı dağıtım görevinde oluşturulmaz. Şirket içinde barındırılan tümleştirme çalışma zamanı kullanan bağlı bir hizmetiniz varsa, çalışma zamanını yeni çalışma alanında el ile oluşturun.
- Geliştirme çalışma alanındaki öğeler belirli havuzlarla ekliyse, parametre dosyasındaki hedef çalışma alanındaki havuzlar için aynı adları oluşturduğunuzdan veya parametreleştirdiğinizden emin olun.
- Dağıtım yapmaya çalıştığınızda sağlanan SQL havuzlarınız duraklatılırsa dağıtım başarısız olabilir.
Daha fazla bilgi için bkz . Azure Synapse Analytics Bölüm 4 - Yayın işlem hattında CI/CD.
Azure DevOps'ta yayın işlem hattı ayarlama
Bu bölümde, Azure DevOps'ta Azure Synapse çalışma alanı dağıtmayı öğreneceksiniz.
Sol menüde İşlem Hatları Yayınları'nı> seçin.
Yeni işlem hattı'ni seçin. Mevcut işlem hatlarınız varsa Yeni Yeni>yayın işlem hattı'yı seçin.
Boş iş şablonunu seçin.
Aşama adı alanına ortamınızın adını girin.
Yapıt ekle'yi ve ardından geliştirme ortamınızda Azure Synapse Studio ile yapılandırılan Git deposunu seçin. Havuzlarınızı ve çalışma alanı ARM şablonunuzu yönettiğiniz Git deposunu seçin. Kaynak olarak GitHub kullanıyorsanız GitHub hesabınız için bir hizmet bağlantısı oluşturun ve depoları çekin. Daha fazla bilgi için bkz . hizmet bağlantıları.
Kaynak ARM şablonu dalını seçin. Varsayılan sürüm için varsayılan daldan en son'ı seçin.
Yapıtlar Varsayılan dal için Depo yayımlama dalını veya Synapse yapıtlarını içeren diğer yayımlama olmayan dalları seçin. Yayımlama dalı varsayılan olarak şeklindedir
workspace_publish
. Varsayılan sürüm için varsayılan daldan en son'ı seçin.
Arm şablonunun kaynak oluşturması ve güncelleştirmesi için aşama görevi ayarlama
Azure Synapse çalışma alanı, Spark ve SQL havuzu veya anahtar kasası gibi bir kaynak dağıtan bir ARM şablonunuz varsa, bu kaynakları oluşturmak veya güncelleştirmek için bir Azure Resource Manager dağıtım görevi ekleyin:
Aşama görünümünde Aşama görevlerini görüntüle'yi seçin.
Yeni bir görev oluşturun. ARM Şablonu Dağıtımı için arama yapın ve Ekle'yi seçin.
Dağıtım Görevleri sekmesinde çalışma alanının aboneliğini, kaynak grubunu ve konumunu seçin. Gerekirse kimlik bilgilerini sağlayın.
Eylem için Kaynak grubu oluştur veya güncelleştir'i seçin.
Şablon için üç nokta düğmesini (...) seçin. Çalışma alanının ARM şablonuna gidin.
Şablon parametreleri için parametre dosyasını seçmek için ... öğesini seçin.
Şablon parametrelerini geçersiz kıl için ... öğesini seçin ve çalışma alanı için kullanmak istediğiniz parametre değerlerini girin.
Dağıtım modu için Artımlı'yı seçin.
(İsteğe bağlı) İzin için Azure PowerShell ekleyin ve çalışma alanı rol atamasını güncelleştirin. Azure Synapse çalışma alanı oluşturmak için yayın işlem hattı kullanırsanız, işlem hattının hizmet sorumlusu varsayılan çalışma alanı yöneticisi olarak eklenir. Diğer hesaplara çalışma alanına erişim vermek için PowerShell'i çalıştırabilirsiniz.
Uyarı
Tam dağıtım modunda, kaynak grubundaki yeni ARM şablonunda belirtilmeyen kaynaklar silinir. Daha fazla bilgi için bkz . Azure Resource Manager dağıtım modları.
Azure Synapse yapıtları dağıtımı için aşama görevi ayarlama
Azure Synapse çalışma alanınızdaki diğer öğeleri dağıtmak için Synapse çalışma alanı dağıtım uzantısını kullanın. Dağıtabileceğiniz öğeler arasında veri kümeleri, SQL betikleri ve not defterleri, spark iş tanımları, tümleştirme çalışma zamanı, veri akışı, kimlik bilgileri ve çalışma alanındaki diğer yapıtlar bulunur.
Dağıtım uzantısını yükleme ve ekleme
Visual Studio Market'ten uzantıyı arayın ve alın.
Uzantıyı yüklemek istediğiniz Azure DevOps kuruluşunu seçin.
Azure DevOps işlem hattının hizmet sorumlusuna Abonelik izni verildiğinden ve çalışma alanı için Synapse çalışma alanı yöneticisi olarak atandığından emin olun.
Yeni bir görev oluşturmak için Synapse çalışma alanı dağıtımı için arama yapın ve Ekle'yi seçin.
Dağıtım görevini yapılandırma
Dağıtım görevi 3 tür işlemi destekler; yalnızca doğrulama, dağıtma ve doğrulama ve dağıtma.
Not
içindeki bu çalışma alanı dağıtım uzantısı geriye dönük olarak uyumlu değil. Lütfen en son sürümün yüklendiğinden ve kullanıldığından emin olun. Sürüm notunu Azure DevOps'a genel bakışbölümünde ve GitHub eylemindeki en son sürümde okuyabilirsiniz.
Doğrulama , yayımlama olmayan daldaki Synapse yapıtlarını görevle doğrulamak ve çalışma alanı şablonu ile parametre şablonu dosyasını oluşturmaktır. Doğrulama işlemi yalnızca YAML işlem hattında çalışır. Örnek YAML dosyası aşağıdaki gibidir:
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>'
Doğrulama ve dağıtma , çalışma alanını yayımlama olmayan daldan yapıt kök klasörüyle doğrudan dağıtmak için kullanılabilir.
Not
dağıtım görevinin, işlem türü Doğrula veya Doğrula ve dağıt olarak seçildiğinde bu uç noktadan web.azuresynapse.net bağımlılık JS dosyalarını indirmesi gerekir. Sanal makinede ağ ilkeleri etkinleştirildiyse lütfen uç nokta web.azuresynapse.net izin verildiğinden emin olun.
Doğrulama ve dağıtma işlemi hem klasik hem de YAML işlem hattında çalışır. Örnek YAML dosyası aşağıdaki gibidir:
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
Dağıtma dağıtım işleminin girişleri Synapse çalışma alanı şablonunu ve parametre şablonunu içerir. Bu şablon, çalışma alanı yayımlama dalında yayımlandıktan sonra veya doğrulamadan sonra oluşturulabilir. 1.x sürümüyle aynıdır.
Kullanım örneğine göre işlem türlerini seçebilirsiniz. Aşağıdaki bölümde dağıtıma bir örnek verilmiştir.
Görevde, işlem türünü Dağıt olarak seçin.
Görevdeki Şablon'un yanındaki ... öğesini seçerek şablon dosyasını seçin.
Parametre dosyasını seçmek için Şablon parametreleri'nin yanındaki ... öğesini seçin.
Çalışma alanı için bir bağlantı, kaynak grubu ve ad seçin.
Şablon parametrelerini geçersiz kıl'ın yanındaki ... öğesini seçin. Bağlı hizmetlerinizde kullanılan bağlantı dizesi ve hesap anahtarları dahil olmak üzere çalışma alanı için kullanmak istediğiniz parametre değerlerini girin. Daha fazla bilgi için bkz . Azure Synapse Analytics'te CI/CD.
Yönetilen özel uç noktanın dağıtımı yalnızca sürüm 2.x'te desteklenir. Lütfen doğru sürümü seçtiğinizden emin olun ve Yönetilen özel uç noktaları şablonda dağıt seçeneğini işaretleyin.
Tetikleyicileri yönetmek için tetikleyici iki durumlu düğmesini kullanarak dağıtımdan önce tetikleyicileri durdurabilirsiniz. Ayrıca, dağıtım görevinden sonra tetikleyicileri yeniden başlatmak için bir görev de ekleyebilirsiniz.
Önemli
CI/CD senaryolarında, farklı ortamlardaki tümleştirme çalışma zamanı türü aynı olmalıdır. Örneğin, geliştirme ortamında şirket içinde barındırılan bir tümleştirme çalışma zamanına sahipseniz, aynı tümleştirme çalışma zamanının test ve üretim gibi diğer ortamlarda şirket içinde barındırılması gerekir. Benzer şekilde, tümleştirme çalışma zamanlarını birden çok aşamada paylaşıyorsanız, tümleştirme çalışma zamanlarının geliştirme, test ve üretim gibi tüm ortamlarda bağlanması ve şirket içinde barındırılması gerekir.
Dağıtım için sürüm oluşturma
Tüm değişiklikleri kaydettikten sonra, sürümü el ile oluşturmak için Yayın oluştur'u seçebilirsiniz. Yayın oluşturmayı otomatikleştirmeyi öğrenmek için bkz . Azure DevOps yayın tetikleyicileri.
GitHub Actions'ta yayın ayarlama
Bu bölümde, Azure Synapse çalışma alanı dağıtımı için GitHub Actions'ı kullanarak GitHub iş akışları oluşturmayı öğreneceksiniz.
Çalışma alanı ve işlem havuzları için Arm şablonunu Azure'a dağıtma işlemini otomatikleştirmek için Azure Resource Manager için GitHub Actions şablonunu kullanabilirsiniz.
İş akışı dosyası
Deponuzdaki /.github/workflows/ yolundaki bir YAML (.yml) dosyasında GitHub Actions iş akışı tanımlayın. Tanım, iş akışını oluşturan çeşitli adımları ve parametreleri içerir.
.yml dosyasının iki bölümü vardır:
Section | Görevler |
---|---|
Kimlik Doğrulaması | 1. Hizmet sorumlusu tanımlayın. 2. GitHub gizli dizisi oluşturun. |
Dağıtma | Çalışma alanı yapıtlarını dağıtın. |
GitHub Actions gizli dizilerini yapılandırma
GitHub Actions gizli dizileri şifrelenmiş ortam değişkenleridir. Bu depoda Ortak Çalışan izni olan herkes bu gizli dizileri kullanarak depodaki Eylemler ile etkileşimde bulunabilir.
GitHub deposunda Ayarlar sekmesini ve ardından Gizli Diziler>Yeni depo gizli dizisi'ni seçin.
İstemci kimliği için yeni bir gizli dizi ekleyin ve dağıtım için hizmet sorumlusunu kullanıyorsanız yeni bir istemci gizli dizisi ekleyin. Ayrıca abonelik kimliğini ve kiracı kimliğini gizli dizi olarak kaydetmeyi de seçebilirsiniz.
İş akışınızı ekleme
GitHub deponuzda Eylemler'e gidin.
İş akışınızı kendiniz ayarlayın'ı seçin.
İş akışı dosyasında, bölümünden
on:
sonraki her şeyi silin. Örneğin, kalan iş akışınız şu örnekteki gibi görünebilir:name: CI on: push: branches: [ master ] pull_request: branches: [ master ]
İş akışınızı yeniden adlandırın. Market sekmesinde Synapse çalışma alanı dağıtım eylemini arayın ve eylemi ekleyin.
Gerekli değerleri ve çalışma alanı şablonunu ayarlayın:
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'
Değişikliklerinizi işlemeye hazırsınız. İşlemeyi başlat'ı seçin, başlığı girin ve ardından bir açıklama ekleyin (isteğe bağlı). Ardından Yeni dosya işle'yi seçin.
Dosya, deponuzdaki .github/workflows klasöründe görünür.
Not
Yönetilen kimlik yalnızca Azure'da şirket içinde barındırılan VM'lerde desteklenir. Çalıştırıcıyı şirket içinde barındırılan olarak ayarladığınızdan emin olun. VM'niz için sistem tarafından atanan yönetilen kimliği etkinleştirin ve Synapse yöneticisi olarak Azure Synapse Studio'ya ekleyin.
Dağıtımınızı gözden geçirme
GitHub deponuzda Eylemler'e gidin.
İş akışınızın çalıştırmasının ayrıntılı günlüklerini görmek için ilk sonucu açın:
Çalışma alanı şablonunda özel parametreler oluşturma
Otomatik CI/CD kullanıyorsanız ve dağıtım sırasında bazı özellikleri değiştirmek istiyorsanız, ancak özellikler varsayılan olarak parametrelenmemişse, varsayılan parametre şablonunu geçersiz kılabilirsiniz.
Varsayılan parametre şablonunu geçersiz kılmak için Git dalınızın kök klasöründe template-parameters-definition.json adlı özel bir parametre şablonu oluşturun. Tam olarak bu dosya adını kullanmanız gerekir. Azure Synapse çalışma alanı işbirliği dalından yayımlandığında veya dağıtım görevi diğer dallardaki yapıtları doğruladığında, bu dosyayı okur ve parametrelerini oluşturmak için yapılandırmasını kullanır. Azure Synapse çalışma alanı bu dosyayı bulamazsa varsayılan parametre şablonunu kullanır.
Özel parametre söz dizimi
Özel parametre dosyası oluşturmak için aşağıdaki yönergeleri kullanabilirsiniz:
- İlgili varlık türünün altına özellik yolunu girin.
- Özellik adını olarak
*
ayarlamak, özelliğin altındaki tüm özellikleri parametreleştirmek istediğinizi gösterir (özyinelemeli olarak değil, yalnızca ilk düzeye kadar). Bu yapılandırmaya özel durumlar ayarlayabilirsiniz. - Bir özelliğin değerini dize olarak ayarlamak, özelliği parametreleştirmek istediğinizi gösterir.
<action>:<name>:<stype>
biçimini kullanın.<action>
şu karakterlerden biri olabilir:=
, geçerli değeri parametre için varsayılan değer olarak tutma anlamına gelir.-
parametresi için varsayılan değeri tutmama anlamına gelir.|
bağlantı dizesi veya anahtarlar için Azure Key Vault'tan gizli diziler için özel bir durumdur.
<name>
parametresinin adıdır. Boşsa, özelliğin adını alır. Değer bir-
karakterle başlıyorsa, ad kısaltılır. Örneğin,AzureStorage1_properties_typeProperties_connectionString
olarak kısaltılırAzureStorage1_connectionString
.<stype>
parametrenin türüdür. Boşsa<stype>
, varsayılan tür olurstring
. Desteklenen değerler: , , , , ,object
secureobject
vearray
.bool
int
securestring
string
- Dosyada bir dizi belirtilmesi, şablondaki eşleşen özelliğin bir dizi olduğunu gösterir. Azure Synapse, belirtilen tanımı kullanarak dizideki tüm nesneler arasında yineleme gerçekleştirir. İkinci nesne olan dize, her yineleme için parametrenin adı olarak kullanılan özelliğin adı olur.
- Tanım bir kaynak örneğine özgü olamaz. Herhangi bir tanım, o türe ait tüm kaynaklar için geçerlidir.
- Varsayılan olarak, tüm güvenli dizeler (Key Vault gizli dizileri gibi) ve güvenli dizeler (bağlantı dizesi, anahtarlar ve belirteçler gibi) parametrelendirilir.
Parametre şablonu tanımı örneği
Parametre şablonu tanımının nasıl göründüğüne bir örnek aşağıda verilmişti:
{
"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": "="
}
}
}
}
Yukarıdaki şablonun kaynak türüne göre nasıl yapıldığını gösteren bir açıklama aşağıdadır.
notebooks
- Yoldaki
properties/bigDataPool/referenceName
herhangi bir özellik, varsayılan değeriyle parametrelendirilir. Her not defteri dosyası için ekli Spark havuzunu parametreleştirebilirsiniz.
sqlscripts
properties/content/currentConnection
Yolda, hem hem depoolName
özellikleri şablondadatabaseName
varsayılan değerler olmadan dizeler olarak parametrelendirilir.
pipelines
- Yoldaki
activities/typeProperties/waitTimeInSeconds
herhangi bir özellik parametreleştirilir. adlıwaitTimeInSeconds
kod düzeyi özelliğine (örneğin, etkinlik) sahip bir işlem hattındakiWait
herhangi bir etkinlik, varsayılan adla bir sayı olarak parametrelendirilir. Özelliğin Resource Manager şablonunda varsayılan değeri olmaz. Bunun yerine, Resource Manager dağıtımı sırasında özelliğine giriş yapılması gerekir. headers
özelliği (örneğin, birWeb
etkinlikte) türüyleobject
parametreleştirilir (Nesne). özelliği,headers
kaynak fabrikayla aynı değere sahip varsayılan bir değere sahiptir.
integrationRuntimes
- Yoldaki
typeProperties
tüm özellikler, ilgili varsayılan değerleriyle parametrelendirilir. Örneğin, tür özellikleri altındaIntegrationRuntimes
iki özellik vardır:computeProperties
vessisProperties
. Her iki özellik türü de ilgili varsayılan değerleri ve türleriyle (Object) oluşturulur.
triggers
altında
typeProperties
iki özellik parametreleştirilir:maxConcurrency
özelliği varsayılan bir değere sahiptir ve türüdürstring
. ÖzelliğininmaxConcurrency
varsayılan parametre adıdır<entityName>_properties_typeProperties_maxConcurrency
.- Özelliği
recurrence
de parametreli hale getirilir. özelliği altındakirecurrence
tüm özellikler, varsayılan değerler ve parametre adları ile dizeler olarak parametrelendirilecek şekilde ayarlanır. Özel duruminterval
, tür olarakint
parametreleştirilmiş özelliğidir. Parametre adı ile<entityName>_properties_typeProperties_recurrence_triggerSuffix
son eklenmiştir. Benzer şekilde,freq
özelliği bir dizedir ve dize olarak parametreleştirilir. Ancak,freq
özelliği varsayılan değer olmadan parametreleştirilir. Ad kısaltılır ve gibi<entityName>_freq
son eklenmiştir.
Not
Şu anda en fazla 50 tetikleyici desteklenmektedir.
linkedServices
- Bağlı hizmetler benzersizdir. Bağlı hizmetler ve veri kümeleri çok çeşitli türlere sahip olduğundan, türe özgü özelleştirme sağlayabilirsiniz. Yukarıdaki örnekte, türündeki
AzureDataLakeStore
tüm bağlı hizmetler için belirli bir şablon uygulanır. Diğer tüm kullanıcılar için (karakterin*
kullanımıyla tanımlanır), farklı bir şablon uygulanır. connectionString
özelliği birsecurestring
değer olarak parametrelendirilir. Varsayılan değere sahip değildir. Parametre adı kısaltılır ve ileconnectionString
soneki eklenir.secretAccessKey
özelliği birAzureKeyVaultSecret
değer olarak parametrelendirilir (örneğin, Amazon S3 bağlı hizmetinde). özelliği, Azure Key Vault gizli dizisi olarak otomatik olarak parametrelendirilir ve yapılandırılan anahtar kasasından getirilir. Anahtar kasasının kendisini de parametreleştirebilirsiniz.
datasets
- Veri kümelerindeki türleri özelleştirebilmenize rağmen, açık *düzey yapılandırma gerekmez. Yukarıdaki örnekte altındaki tüm veri kümesi özellikleri
typeProperties
parametreleştirilmiştir.
CI/CD için en iyi yöntemler
Azure Synapse çalışma alanınızla Git tümleştirmesi kullanıyorsanız ve değişikliklerinizi geliştirme aşamasından teste ve ardından üretim aşamasına taşıyan bir CI/CD işlem hattınız varsa şu en iyi yöntemleri öneririz:
- Git ile yalnızca geliştirme çalışma alanını tümleştirin. Git tümleştirmesi kullanıyorsanız yalnızca geliştirme Azure Synapse çalışma alanınızı Git ile tümleştirin. Test ve üretim çalışma alanlarında yapılan değişiklikler CI/CD aracılığıyla dağıtılır ve Git tümleştirmesine gerek yoktur.
- Yapıtları geçirmeden önce havuzları hazırlayın. Geliştirme çalışma alanındaki havuzlara eklenmiş bir SQL betiğiniz veya not defteriniz varsa, farklı ortamlardaki havuzlar için aynı adı kullanın.
- Kod senaryoları olarak altyapıda sürüm oluşturma işlemini eşitleyin. Açıklayıcı bir modelde altyapıyı (ağlar, sanal makineler, yük dengeleyiciler ve bağlantı topolojisi) yönetmek için DevOps ekibinin kaynak kodu için kullandığı sürüm oluşturmayı kullanın.
- Azure Data Factory en iyi yöntemlerini gözden geçirin. Data Factory kullanıyorsanız Data Factory yapıtları için en iyi yöntemlere bakın.
Yapıt dağıtımı sorunlarını giderme
Synapse yapıtlarını dağıtmak için Synapse çalışma alanı dağıtım görevini kullanma
Azure Synapse'de, Data Factory'nin aksine yapıtlar Resource Manager kaynakları değildir. Azure Synapse yapıtlarını dağıtmak için ARM şablonu dağıtım görevini kullanamazsınız. Bunun yerine yapıtları dağıtmak için Synapse çalışma alanı dağıtım görevini kullanın ve ARM kaynakları (havuzlar ve çalışma alanı) dağıtımı için ARM dağıtım görevini kullanın. Bu arada bu görev yalnızca kaynakların Microsoft.Synapse türüne sahip olduğu Synapse şablonlarını destekler. Bu görevle, kullanıcılar Synapse Studio'da yayımlamaya el ile tıklamadan değişiklikleri herhangi bir daldan otomatik olarak dağıtabilir. Aşağıda sık karşılaşılan bazı sorunlar yer alır.
1. Yayımlama başarısız oldu: çalışma alanı arm dosyası 20 MB'tan fazla
Git sağlayıcısında dosya boyutu sınırlaması vardır, örneğin Azure DevOps’ta dosya boyutu üst sınırı 20 Mb’tır. Çalışma alanı şablonu dosya boyutu 20 Mb'ı aştığında, çalışma alanı şablon dosyasının oluşturulduğu ve git ile eşitlendiği Synapse Studio'da değişiklikleri yayımladığınızda bu hata oluşur. Sorunu çözmek için Synapse dağıtım görevini doğrulama veya doğrulama ve dağıtma işlemiyle kullanarak çalışma alanı şablon dosyasını doğrudan işlem hattı aracısına kaydedebilir ve synapse studio'da el ile yayımlamadan kaydedebilirsiniz.
2. Sürümde beklenmeyen belirteç hatası
Parametre dosyanızda kaçış olmayan parametre değerleri varsa, yayın işlem hattı dosyayı ayrıştıramaz ve bir unexpected token
hata oluşturur. Parametre değerlerini almak için parametreleri geçersiz kılmanızı veya Key Vault kullanmanızı öneririz. Sorunu çözmek için çift kaçış karakterleri de kullanabilirsiniz.
3. Tümleştirme çalışma zamanı dağıtımı başarısız oldu
Yönetilen sanal ağ özellikli bir çalışma alanından oluşturulan çalışma alanı şablonunuz varsa ve normal bir çalışma alanına dağıtmaya çalışıyorsanız (veya tam tersi) bu hata oluşur.
4. Değer ayrıştırılırken beklenmeyen karakterle karşılaşıldı
Şablon, şablon dosyası ayrıştırılamaz. Ters eğik çizgilerden kaçarak deneyin, örneğin. \\Test01\Test
5. Çalışma alanı bilgileri getirilemedi, Bulunamadı
Hedef çalışma alanı bilgileri doğru yapılandırılmamış. Oluşturduğunuz hizmet bağlantısının kapsamının çalışma alanını içeren kaynak grubuyla belirlenmiş olduğundan emin olun.
6. Yapıt silinemedi
Uzantı, yayımlama dalında bulunan yapıtları şablonla karşılaştırır ve farka bağlı olarak bunları siler. Lütfen yayımlama dalında bulunan yapıtları silmeye çalışmadığınızdan ve diğer yapıtların bir başvurusu veya bağımlılığı olduğundan emin olun.
8. Dağıtım şu hatayla başarısız oldu: json konumu 0
Şablonu el ile güncelleştirmeye çalışıyorsanız bu hata oluşabilir. Lütfen şablonu el ile düzenlemediğinizden emin olun.
9. Geçersiz başvuru nedeniyle belge oluşturulamadı veya güncelleştirilemedi
Synapse'teki yapıta başka bir yapıt tarafından başvurulabilir. Yapıtta başvurulan bir özniteliği parametreleştirdiyseniz, lütfen yapıta doğru ve null olmayan bir değer sağladığınıza emin olun
10. Not defteri dağıtımında dağıtım durumu getirilemedi
Dağıtmaya çalıştığınız not defteri çalışma alanı şablon dosyasındaki spark havuzuna eklenirken dağıtımda havuz hedef çalışma alanında yok. Havuz adını parametreleştirmezseniz, ortamlar arasındaki havuzlar için aynı ada sahip olduğunuzdan emin olun.