Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
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ı seçebilirsiniz.
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 deposunda "Owner" 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 çalışması için yeni bir hizmet hesabı oluşturun veya mevcut bir hizmet hesabını aday gösterin. Hizmet hesabı yerine kişisel erişim belirteci kullanabilirsiniz, ancak kullanıcı hesabı silindikten sonra işlem hatlarınız çalışmaz.
GitHub (İngilizce)
GitHub kullanıyorsanız:
- Azure Synapse çalışma alanı yapıtlarını ve çalışma alanı şablonunu içeren bir GitHub deposu oluşturun.
- Kendi kendine barındırılan bir çalıştırıcı oluşturduğunuzdan veya GitHub tarafından 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/çalışmaalanları/entegrasyonçalışmazamanları/yaz
- Microsoft.Synapse/çalışma-alanları/işlemSonuçları/okuma
- 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'ya gidin, ardından Yönet ve Erişim Denetimi'ni açın. 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 ortamı sırlarına erişim izinleri olmasını istemeyebilirsiniz. Bu yaklaşımı izlerseniz, tüm aşamalarda aynı gizli isimleri 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 kendi barındırılan tümleştirme çalışma zamanları bir çalışma alanı dağıtım görevinde oluşturulmaz. Kendi kendine barındırılan bir tümleştirme çalışma zamanı gerektiren bağlı bir hizmetiniz varsa, çalışma zamanını yeni çalışma alanında manuel olarak 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'te CI/CD Bölüm 4 - Yayın hattı.
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'ı seçin.
Yeni işlem hattı'yı seçin. Mevcut işlem hatlarınız varsa Yeni>Yeni sürüm hattı seçin.
Boş iş şablonunu seçin.
Aşama adı alanına ortamınızın adını girin.
Artefakt Ekle'yi seçin ve ardından geliştirme ortamınızda Azure Synapse Studio ile yapılandırılmış 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, Synapse yapıtlarını içeren depo yayımlama dalını veya diğer yayımlanmayan 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ı) Yetkilendirme için Azure PowerShell'ı ekleyin ve çalışma alanı rol atamasını güncelleyin. 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, sadece doğrulama, dağıtma ve doğrulama ile dağıtma olmak üzere üç tür işlemi destekler.
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ı şu şekildedir:
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 dışı 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ı şu şekildedir:
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örevde, Şablon etiketinin yanındaki … seçeneğini 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 seçeneğinin 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 2.x sürümünde desteklenir. Doğru sürümü seçtiğinizden emin olun ve Yönetilen özel uç noktaları şablonda dağıtın seçeneğini işaretleyin.
Tetikleyicileri yönetmek için tetikleyici geçiş 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 öz barındırımlı 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 da öz barındırımlı olması gerekir. Aynı şekilde, entegrasyon zamanlamalarını birden çok aşamada paylaşıyorsanız, entegrasyon zamanlamalarının tüm ortamlarda, yani geliştirme, test ve üretim gibi, bağlanmalı ve yerel olarak barındırılmalıdır.
Şu anda Synapse Çalışma Alanı dağıtım uzantısında İş Yükü Kimlik Federasyonu (WIF) ile DevOps Hizmeti Bağlantısı desteklenmez. Bağlantının başarılı olması için gizli moda geçin.
İş Yükü Kimlik Federasyonu'na (WIF) tam olarak destek veren güvenli, gizli olmayan alternatifler için, İş Yükü Kimliği Federasyonu kullanarak Azure'a bağlanma bölümünde açıklandığı gibi federasyon hizmeti bağlantısıyla AzureCLI@2 veya PowerShell işlem hattı görevlerini kullanın.
Bu görevler gizli olmayan kimlik doğrulamasını destekler ve aynı dağıtım akışını korurken Synapse dağıtım komutlarını (az synapse pipeline create, az synapse artifact publish) yürütebilir.
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:
| Bölüm | Görevler |
|---|---|
| Kimlik Doğrulaması | 1. Hizmet sorumlusu tanımlayın.
2. GitHub sırrı oluşturun. |
| Dağıtma | Çalışma alanı bileşenlerini dağıtın. |
GitHub Actions gizlilik ayarlarını yapılandırma
GitHub Actions gizli dizileri şifrelenmiş ortam değişkenleridir. Bu depoda İş Birlikçi iznine sahip olan herkes, bu gizli bilgileri kullanarak depodaki Eylemler ile etkileşimde bulunabilir.
GitHub deposunda Ayarlar sekmesini seçin ve ardından Gizli Veriler'i, >Yeni depo sırrı'nı 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 bilgiler 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
on:bölümünden 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 kaydetmeye 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 dosyayı gerçekleştir'i 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ı kendi kendine 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ınlandığında veya dağıtım görevi diğer dallardaki yapıtları doğruladığında, bu dosyayı okur ve parametreleri 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 bilgiler 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_connectionStringolarak kısaltılırAzureStorage1_connectionString. -
<stype>parametrenin türüdür. Boşsa<stype>, varsayılan tür olurstring. Desteklenen değerler:string,securestring,int,bool,object,secureobjectvearray.
-
- 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/referenceNameherhangi bir özellik, varsayılan değeriyle parametrelendirilir. Her not defteri dosyası için ekli Spark havuzunu parametreleştirebilirsiniz.
sqlscripts
-
properties/content/currentConnectionyolunda, hempoolNamehem dedatabaseNameözellikleri, şablonda varsayılan değerler olmadan dizeler olarak parametrelendirilir.
pipelines
-
activities/typeProperties/waitTimeInSecondsyolundaki herhangi bir özellik parametre olarak belirlenir.waitTimeInSecondsadlı kod düzeyi özelliğine sahip bir işlem hattındakiWaitadlı herhangi bir etkinlik, varsayılan bir adla sayı olarak parametrelendirilir. Özelliğin Resource Manager şablonunda varsayılan değeri olmaz. Bunun yerine, Resource Manager dağıtımı sırasında özellik için bir giriş yapılması gerekecektir. -
headersözelliği (örneğin, birWebetkinlikte)objecttürü (Nesne) ile parametreleştirilmiştir.headersözelliği, kaynak fabrika ile aynı olan varsayılan bir değere sahiptir.
integrationRuntimes
- Yoldaki
typePropertiestüm özellikler, ilgili varsayılan değerleriyle parametrelendirilir. Örneğin, tür özellikleri altındaIntegrationRuntimesiki özellik vardır:computePropertiesvessisProperties. Her iki özellik türü de ilgili varsayılan değerleri ve türleriyle (Object) oluşturulur.
triggers
altında
typePropertiesiki özellik parametreleştirilir:-
maxConcurrencyözelliği varsayılan bir değere sahiptir ve türüdürstring. ÖzelliğininmaxConcurrencyvarsayılan parametre adıdır<entityName>_properties_typeProperties_maxConcurrency. - Özellik
recurrencede parametreli. özelliği altındakirecurrencetüm özellikler, varsayılan değerler ve parametre adları ile dizeler olarak parametrelendirilecek şekilde ayarlanır. Bir istisnaintervalözelliğidir, tür olarakintşeklinde parametreleştirilmiştir. Parametre adının sonuna<entityName>_properties_typeProperties_recurrence_triggerSuffixeklenmiş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<entityName>_freqgibi kısaltılır ve son ek olarak eklenir.
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
AzureDataLakeStoretüm bağlı hizmetler için belirli bir şablon uygulanır.*karakteri kullanılarak tanımlanan diğer tüm kullanıcılar için, farklı bir şablon uygulanır. -
connectionStringözelliği birsecurestringdeğer olarak parametrelendirilir. Varsayılan değere sahip değildir. Parametre adı kısaltılır veconnectionStringsoneki eklenir. -
secretAccessKeyözelliği birAzureKeyVaultSecretdeğer olarak parametrelendirilir (örneğin, Amazon S3 bağlı hizmetinde). Özellik, Azure Key Vault sırrı olarak otomatik olarak parametrelendirilir ve yapılandırılmış anahtar kasasından alınır. 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
typePropertiesparametreleş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ımla' tuşuna elle tıklamaya gerek kalmadan, 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 bir 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'yi 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 run-time 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ğıtmayı denerseniz (veya tersi) bu hata oluşur.
4. Değer ayrıştırılırken beklenmeyen karakterle karşılaşıldı
Ş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ın bulunduğu kaynak grubuna göre ayarlandığından emin olun.
6. Artifakt silinemedi
Uzantı, yayımlama dalında bulunan yapıtları şablonla karşılaştırır ve farka bağlı olarak bunları siler. Yayımlama dalında bulunan hiçbir artefaktı silmeye çalışmadığınızdan ve başka bir artefaktın bunlara bir başvurusu veya bağımlılığı olmadığıdan emin olun.
7. 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. Şablonu el ile düzenlemediğinizden emin olun.
8. Geçersiz başvuru nedeniyle belge oluşturulamadı veya güncelleştirilemedi
Synapse'teki nesneye başka bir nesne tarafından başvurulabilir. Yapıtta başvurulan bir özniteliği parametreleştirdiyseniz, buna doğru ve null olmayan bir değer sağladığınıza emin olun
9. Not defteri dağıtımında dağıtım durumu getirilemedi
Dağıtmaya çalıştığınız not defteri, çalışma alanı şablon dosyasında yer alan bir spark havuzuna bağlıdır. Ancak, dağıtım sırasında havuz, hedef çalışma alanında mevcut değildir. Havuz adını parametreleştirmezseniz, ortamlar arasındaki havuzların aynı isme sahip olduklarından emin olun.