Azure Synapse Analytics çalışma alanı için sürekli entegrasyon ve teslimat

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:

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:

    1. Yeni bir Azure Synapse çalışma alanı oluşturun.
    2. 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
    3. Çalışma alanında Git deposu bağlantısını yapılandırmayın.
    4. 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.
    5. 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.

  1. Azure DevOps'ta, sürüm için oluşturduğunuz projeyi açın.

  2. Sol menüde İşlem Hatları>Yayınlar'ı seçin.

    Azure DevOps menüsünde İşlem Hatları ve ardından Yayınlar'ı seçmeyi gösteren ekran görüntüsü.

  3. Yeni işlem hattı'yı seçin. Mevcut işlem hatlarınız varsa Yeni>Yeni sürüm hattı seçin.

  4. Boş iş şablonunu seçin.

    Boş iş şablonunun seçilmesini gösteren ekran görüntüsü.

  5. Aşama adı alanına ortamınızın adını girin.

  6. 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ı.

    Yeni yapıt için yayımlama dalı eklemek üzere GitHub'ı seçmeyi gösteren ekran görüntüsü.

  7. Kaynak ARM şablonu dalını seçin. Varsayılan sürüm için varsayılan daldan en son'ı seçin.

    Kaynak ARM şablonu dalını ayarlamayı gösteren ekran görüntüsü.

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

    Yapıt dalını ayarlamayı gösteren ekran görüntüsü.

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:

  1. Aşama görünümünde Aşama görevlerini görüntüle'yi seçin.

    Aşama görünümü ayarlarını gösteren ekran görüntüsü.

  2. Yeni bir görev oluşturun. ARM Şablonu Dağıtımı için arama yapın ve Ekle'yi seçin.

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

  4. Eylem için Kaynak grubu oluştur veya güncelleştir'i seçin.

  5. Şablon için üç nokta düğmesini (...) seçin. Çalışma alanının ARM şablonuna gidin.

  6. Şablon parametreleri için parametre dosyasını seçmek için ... öğesini seçin.

    Çalışma alanı ve havuz dağıtımını gösteren ekran görüntüsü.

  7. Şablon parametrelerini geçersiz kıl için ... öğesini seçin ve çalışma alanı için kullanmak istediğiniz parametre değerlerini girin.

  8. Dağıtım modu için Artımlı'yı seçin.

  9. (İ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.

    İzin vermek için PowerShell betiğini çalıştırmayı gösteren ekran görüntüsü.

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

  1. Visual Studio Market'ten uzantıyı arayın ve alın.

    Synapse çalışma alanı dağıtım uzantısını Visual Studio Market'te göründüğü şekilde gösteren ekran görüntüsü.

  2. Uzantıyı yüklemek istediğiniz Azure DevOps kuruluşunu seçin.

    Synapse çalışma alanı dağıtım uzantısının yükleneceği bir kuruluşun seçilmesini gösteren ekran görüntüsü.

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

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

    Görev oluşturmak için Synapse çalışma alanı dağıtımının arandığını gösteren ekran görüntüsü.

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.

  1. Görevde, işlem türünü Dağıt olarak seçin.

    Dağıtım işleminin seçimini gösteren ekran görüntüsü.

  2. Görevde, Şablon etiketinin yanındaki seçeneğini seçerek şablon dosyasını seçin.

  3. Parametre dosyasını seçmek için Şablon parametreleri'nin yanındaki ... öğesini seçin.

  4. Çalışma alanı için bir bağlantı, kaynak grubu ve ad seçin.

  5. Ş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.

    Çalışma alanı için Synapse dağıtım görevini ayarlamayı gösteren ekran görüntüsü.

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

    Synapse dağıtım göreviyle özel uç noktaları dağıtmak için 2.x sürümünü seçmeyi gösteren ekran görüntüsü.

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

    Dağıtımdan önce ve sonra tetikleyicileri yönetmeyi gösteren ekran görüntüsü.

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

Yayın oluştur seçeneğinin vurgulandığı Yeni yayın işlem hattı bölmesini gösteren ekran görüntüsü.

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.

  1. GitHub deposunda Ayarlar sekmesini seçin ve ardından Gizli Veriler'i, >Yeni depo sırrı'nı seçin.

    Yeni bir depo sırrı oluşturmak için seçilecek GitHub öğelerini gösteren ekran görüntüsü.

  2. İ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.

  1. İş akışınızı kendiniz ayarlayın'ı seçin.

  2. İş 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 ]
    
  3. İş akışınızı yeniden adlandırın. Market sekmesinde Synapse çalışma alanı dağıtım eylemini arayın ve eylemi ekleyin.

    Market sekmesinde Synapse çalışma alanı dağıtım görevini aramayı gösteren ekran görüntüsü.

  4. 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'
    
  5. 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.

    GitHub'da iş akışının işlenmesini gösteren ekran görüntüsü.

    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

  1. GitHub deponuzda Eylemler'e gidin.

  2. İş akışınızın çalıştırmasının ayrıntılı günlüklerini görmek için ilk sonucu açın:

    GitHub'daki depo Eylemleri'nde çalışma alanı dağıtımı oturumunu seçmeyi gösteren ekran görüntüsü.

Ç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_connectionString olarak kısaltılır AzureStorage1_connectionString.
    • <stype> parametrenin türüdür. Boşsa <stype> , varsayılan tür olur string. Desteklenen değerler: string, securestring, int, bool, object, secureobject ve array.
  • 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 yolunda, hem poolName hem de databaseName özellikleri, şablonda varsayılan değerler olmadan dizeler olarak parametrelendirilir.

pipelines

  • activities/typeProperties/waitTimeInSeconds yolundaki herhangi bir özellik parametre olarak belirlenir. waitTimeInSeconds adlı kod düzeyi özelliğine sahip bir işlem hattındaki Wait adlı 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, bir Web etkinlikte) object türü (Nesne) ile parametreleştirilmiştir. headers özelliği, kaynak fabrika ile aynı olan varsayılan bir değere sahiptir.

integrationRuntimes

  • Yoldaki typeProperties tüm özellikler, ilgili varsayılan değerleriyle parametrelendirilir. Örneğin, tür özellikleri altında IntegrationRuntimes iki özellik vardır: computeProperties ve ssisProperties. 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ğinin maxConcurrency varsayılan parametre adıdır <entityName>_properties_typeProperties_maxConcurrency.
    • Özellik recurrence de parametreli. özelliği altındaki recurrence tüm özellikler, varsayılan değerler ve parametre adları ile dizeler olarak parametrelendirilecek şekilde ayarlanır. Bir istisna interval özelliğidir, tür olarak int şeklinde parametreleştirilmiştir. Parametre adının sonuna <entityName>_properties_typeProperties_recurrence_triggerSuffix 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 <entityName>_freq gibi 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 AzureDataLakeStore tü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 bir securestring değer olarak parametrelendirilir. Varsayılan değere sahip değildir. Parametre adı kısaltılır ve connectionString soneki eklenir.
  • secretAccessKey özelliği bir AzureKeyVaultSecret değ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 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ı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.