Integrasi dan pengiriman berkelanjutan untuk ruang kerja Azure Synapse Analytics

Integrasi berkelanjutan (CI) adalah proses yang mengotomatiskan build dan pengujian kode setiap kali anggota tim menerapkan perubahan pada kontrol versi. Pengiriman berkelanjutan (CD) adalah proses membangun, menguji, mengkonfigurasi, dan menyebarkan dari beberapa lingkungan pengujian atau pementasan ke lingkungan produksi.

Di ruang kerja Azure Synapse Analytics, CI/CD akan memindahkan semua entitas dari satu lingkungan (pengembangan, pengujian, produksi) ke lingkungan lain. Mempromosikan ruang kerja Anda ke ruang kerja lain adalah proses dua bagian. Pertama, gunakan templat Azure Resource Manager (templat ARM) untuk membuat atau memperbarui sumber daya ruang kerja (kumpulan dan ruang kerja). Kemudian, migrasikan artefak seperti SQL skrip dan notebook, definisi ruang kerja Spark, alur, himpunan data, dan aliran data dengan menggunakan alat Azure Synapse CI/CD di Azure DevOps atau di GitHub.

Artikel ini menguraikan cara menggunakan alur rilis Azure DevOps dan tindakan GitHub untuk mengotomatiskan penyebaran ruang kerja Azure Synapse ke beberapa lingkungan.

Prasyarat

Untuk mengotomatiskan penyebaran ruang kerja Azure Synapse ke beberapa lingkungan, prasyarat dan konfigurasi berikut harus diterapkan.

Azure DevOps

GitHub

  • Buat repositori GitHub yang berisi artefak ruang kerja Azure Synapse dan templat ruang kerja.
  • Pastikan Anda telah membuat pengeksekusi yang dihosting sendiri atau menggunakan pengeksekusi yang dihosting GitHub.

Microsoft Entra ID

  • Jika Anda menggunakan perwakilan layanan, di ID Microsoft Entra, buat perwakilan layanan untuk digunakan untuk penyebaran.
  • Untuk menggunakan identitas terkelola, aktifkan identitas terkelola yang ditetapkan sistem di mesin virtual Anda di Azure sebagai agen atau pengeksekusi dan menambahkannya ke Azure Synapse Studio Anda sebagai admin Synapse.
  • Gunakan peran admin Microsoft Entra untuk menyelesaikan tindakan ini.

Azure Synapse Analytics

Catatan

Anda dapat mengotomatiskan dan menyebarkan prasyarat ini dengan menggunakan alur yang sama, templat ARM, atau Azure CLI, tetapi prosesnya tidak dijelaskan dalam artikel ini.

  • Ruang kerja "sumber" yang digunakan untuk pengembangan harus dikonfigurasikan dengan repositori Git di Azure Synapse Studio. Untuk informasi selengkapnya, lihat Kontrol sumber di Azure Synapse Studio.

  • Menyiapkan Ruang kerja kosong untuk disebarkan:

    1. Buat ruang kerja Azure Synapse baru.
    2. Berikan izin berikut kepada perwakilan layanan ke ruang kerja Synapse baru:
      • Microsoft.Synapse/workspace/integrationruntimes/write
      • Microsoft.Synapse/workspaces/operationResults/read
      • Microsoft.Synapse/workspaces/read
    3. Di ruang kerja, jangan konfigurasikan koneksi repositori Git.
    4. Di ruang kerja Azure Synapse, buka Studio>Kelola>Kontrol Akses. 4. Di ruang kerja Azure Synapse, buka Studio > Kelola > Kontrol Akses. Tetapkan "Penerbit Artefak Synapse" ke perwakilan layanan. Jika alur penyebaran perlu menyebarkan titik akhir privat terkelola, maka tetapkan "Administrator Synapse" sebagai gantinya.
    5. Jika Anda menggunakan layanan tertaut yang informasi koneksinya disimpan di Azure Key Vault, sebaiknya simpan brankas kunci terpisah untuk lingkungan yang berbeda. Anda juga dapat mengonfigurasi tingkat izin terpisah untuk setiap brankas kunci. Misalnya, Anda mungkin tidak ingin anggota tim Anda memiliki izin ke rahasia produksi. Jika Anda mengikuti pendekatan ini, sebaiknya Anda menyimpan nama rahasia yang sama di semua tahap. Jika menyimpan nama rahasia yang sama, Anda tidak perlu membuat parameter setiap string koneksi di seluruh lingkungan CI/CD karena satu-satunya hal yang berubah adalah nama brankas kunci, yang merupakan parameter terpisah.

Prasyarat lain

  • Kumpulan Spark dan runtime integrasi yang dihost sendiri tidak dibuat dalam tugas penyebaran ruang kerja. Jika Anda memiliki layanan tertaut yang menggunakan runtime integrasi yang dihost sendiri, buat runtime bahasa umum secara manual di ruang kerja baru.
  • Jika item di ruang kerja pengembangan dilampirkan dengan kumpulan tertentu, pastikan Anda membuat atau memparameterkan nama kumpulan yang sama di ruang kerja target pada file parameter.
  • Jika kumpulan SQL yang diprovisikan dijeda saat Anda mencoba menyebarkannya, penyebaran mungkin gagal.

Untuk informasi selengkapnya, lihat CI CD di Azure Synapse Analytics Bagian 4 - Alur rilis.

Membuat alur rilis di Azure DevOps

Di bagian ini, Anda akan belajar cara menyebarkan ruang kerja Azure Synapse di Azure DevOps.

  1. Di Azure DevOps, buka proyek yang dibuat untuk rilis.

  2. Di menu sebelah kiri, pilih Alur>Rilis.

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

  3. Pilih Pipa baru. Jika Anda memiliki alur yang sudah ada, pilih Baru>Alur rilis baru.

  4. Pilih templat Pekerjaan kosong.

    Screenshot that shows selecting the Empty job template.

  5. Pada Nama tahap, masukkan nama lingkungan Anda.

  6. Pilih Tambahkan artefak, lalu pilih repositori Git yang dikonfigurasi dengan Azure Synapse Studio di lingkungan pengembangan Anda. Pilih repositori Git tempat Anda mengelola templat ARM kumpulan dan ruang kerja Anda. Jika Anda menggunakan GitHub sebagai sumber, Anda perlu membuat koneksi layanan untuk akun GitHub Anda dan menarik repositori. Untuk informasi selengkapnya, lihat koneksi layanan.

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

  7. Pilih cabang templat ARM sumber daya. Untuk Versi default, pilih Terbaru dari cabang default.

    Screenshot that shows setting the resource ARM template branch.

  8. Untuk artefak Cabang default, pilih cabang penerbitan repositori atau cabang non-publikasi lainnya yang mencakup artefak Synapse. Secara default, cabang penerbitannya adalah workspace_publish. Untuk Versi default, pilih Terbaru dari cabang default.

    Screenshot that shows setting the artifacts branch.

Menyiapkan tugas tahap untuk templat ARM untuk membuat dan memperbarui sumber daya

Jika Anda memiliki templat ARM yang menyebarkan sumber daya, seperti ruang kerja Azure Synapse, kumpulan Spark dan SQL, atau brankas kunci, tambahkan tugas penyebaran Azure Resource Manager untuk membuat atau memperbarui sumber daya tersebut:

  1. Dalam tampilan tahap, pilih Tampilkan tugas tahap.

    Screenshot that shows setting the stage view.

  2. Buat tugas baru. Cari Penyebaran Templat ARM, lalu pilih Tambahkan.

  3. Pada tab Tugas penyebaran, pilih langganan, grup sumber daya, dan lokasi untuk ruang kerja. Berikan info masuk jika perlu.

  4. Untuk Tindakan, pilih Buat atau perbarui grup sumber daya.

  5. Untuk Templat, pilih tombol titik tiga (). Buka templat ARM dari ruang kerja.

  6. Untuk Parameter templat, pilih untuk memilih file parameter.

    Screenshot that shows the: workspace and pools deploy.

  7. Untuk Mengambil alih parameter templat, pilih , lalu masukkan nilai parameter yang ingin Anda gunakan untuk ruang kerja.

  8. Untuk Mode penyebaran, pilih Bertambah bertahap.

  9. (Opsional) Tambahkan Azure PowerShell untuk pemberian dan pembaruan penetapan peran ruang kerja. Jika Anda menggunakan alur rilis untuk membuat ruang kerja Azure Synapse, perwakilan layanan alur ditambahkan sebagai admin ruang kerja default. Anda dapat menjalankan PowerShell untuk memberi akun lain akses ke ruang kerja.

    Screenshot that demonstrates running a PowerShell script to grant permissions.

Peringatan

Dalam mode penyebaran lengkap, sumber daya di grup sumber daya yang tidak ditetapkan dalam templat ARM baru dihapus. Untuk informasi selengkapnya, lihat Mode penyebaran Azure Resource Manager.

Menyiapkan tugas tahap untuk penyebaran artefak Azure Synapse

Gunakan ekstensi penyebaran ruang kerja Synapse untuk menyebarkan item lain di ruang kerja Azure Synapse Anda. Item yang dapat Anda sebarkan termasuk himpunan data, SQL skrip dan notebook, definisi kerja spark, runtime integrasi, aliran data, kredensial, dan artefak lainnya di ruang kerja.

Memasang dan menambahkan ekstensi penyebaran

  1. Cari dan dapatkan ekstensi dari Visual Studio Marketplace.

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

  2. Pilih organisasi Azure DevOps tempat Anda ingin memasang ekstensi.

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

  3. Pastikan perwakilan layanan alur Azure DevOps telah diberi izin Langganan dan ditetapkan sebagai admin ruang kerja Synapse untuk ruang kerja.

  4. Untuk membuat tugas baru, cari penyebaran ruang kerja Synapse, kemudian pilih Tambah.

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

Mengonfigurasikan tugas penyebaran

Tugas penyebaran mendukung 3 jenis operasi, hanya memvalidasi, menyebarkan dan memvalidasi dan menyebarkan.

Catatan

Ekstensi penyebaran ruang kerja ini bersifat tidak kompatibel mundur. Pastikan versi terbaru diinstal dan digunakan. Anda dapat membaca catatan rilis ini di ringkasan di Azure DevOps dan versi terbaru di tindakan GitHub.

Validasi adalah untuk memvalidasi artefak Synapse di cabang yang tidak diterbitkan dengan tugas dan menghasilkan templat ruang kerja dan file templat parameter. Operasi validasi hanya berfungsi di alur YAML. Contoh pada file YAML adalah seperti di bawah ini:

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

Validasi dan sebarkan dapat digunakan untuk langsung menyebarkan ruang kerja dari cabang yang tidak di publikasi dengan folder akar artefak.

Catatan

Tugas penyebaran perlu mengunduh file JS dependensi dari titik akhir ini web.azuresynapse.net ketika jenis operasi dipilih sebagai Validasi atau Validasi dan sebarkan. Pastikan titik akhir web.azuresynapse.net diizinkan jika kebijakan jaringan diaktifkan pada VM.

Operasi validasi dan penyebaran berfungsi di alur klasik dan YAML. Contoh pada file YAML adalah seperti di bawah ini:

   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

Menyebarkan Input penyebaran operasi mencakup templat ruang kerja Synapse dan templat parameter, yang dapat dibuat setelah penerbitan di cabang penerbitan ruang kerja atau setelah validasi. Ini sama dengan versi 1.x.

Anda dapat memilih jenis operasi berdasarkan kasus penggunaan. Bagian berikut adalah contoh penyebaran.

  1. Dalam tugas, pilih jenis operasi sebagai Sebarkan.

    Screenshot that shows the selection of operation deploy.

  2. Dalam tugas, di samping Templat, pilih untuk memilih file templat.

  3. Di samping Parameter templat, pilih untuk memilih file parameter.

  4. Pilih koneksi, grup sumber daya, dan nama untuk ruang kerja.

  5. Di samping Ambil alih parameter templat, pilih . Masukkan nilai parameter yang ingin Anda gunakan untuk ruang kerja, termasuk string koneksi dan kunci akun yang digunakan di layanan tertaut Anda. Untuk informasi selengkapnya, lihat CI/CD di Azure Synapse Analytics.

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

  6. Penyebaran titik akhir privat terkelola hanya didukung di versi 2.x. pastikan Anda memilih versi yang tepat dan periksa Menyebarkan titik akhir privat terkelola di templat.

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

  7. Untuk mengelola pemicu, Anda dapat menggunakan tombol pemicu untuk menghentikan pemicu sebelum penyebaran. Dan Anda juga dapat menambahkan tugas untuk menghidupkan ulang pemicu setelah tugas penyebaran.

    Screenshot that shows managing triggers before and after deployment.

Penting

Dalam skenario CI/CD, jenis runtime integrasi di lingkungan yang berbeda harus sama. Misalnya, jika Anda memiliki runtime integrasi yang dihost sendiri di lingkungan pengembangan, runtime integrasi yang sama juga harus dihost sendiri di lingkungan lain, seperti pengujian dan produksi. Demikian pula, jika berbagi runtime integrasi dalam beberapa tahap, runtime integrasi harus ditautkan dan dihost sendiri di semua lingkungan, seperti pengembangan, pengujian, dan produksi.

Membuat rilis untuk penyebaran

Setelah menyimpan semua perubahan, Anda dapat memilih Buat rilis untuk membuat rilis secara manual. Untuk mengotomatiskan pembuatan rilis, lihat Pemicu rilis Azure DevOps.

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

Menyiapkan rilis di Tindakan GitHub

Di bagian ini, Anda akan belajar cara membuat alur kerja GitHub menggunakan Tindakan GitHub untuk penyebaran ruang kerja Azure Synapse.

Anda dapat menggunakan templat GitHub Actions untuk Azure Resource Manager untuk mengotomatiskan penyebaran template ARM ke Azure untuk ruang kerja dan kumpulan komputasi.

File alur kerja

Tentukan alur kerja Tindakan GitHub di file YAML (.yml) pada jalur /.github/workflows/ pada repositori Anda. Definisi ini berisi berbagai langkah dan parameter yang membentuk alur kerja.

File .yml memiliki dua bagian:

Bagian Tugas
Autentikasi 1. Tentukan perwakilan layanan.
2. Buat rahasia GitHub.
Sebarkan Sebarkan artefak ruang kerja.

Konfigurasikan rahasia Tindakan GitHub

Rahasia Tindakan GitHub adalah variabel lingkungan yang dienkripsi. Siapa pun yang memiliki izin Kolaborator ke repositori ini dapat menggunakan rahasia ini untuk berinteraksi dengan Tindakan di repositori.

  1. Di repositori GitHub, pilih tab Pengaturan, lalu pilih Rahasia>Rahasia repositori baru.

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

  2. Tambahkan rahasia baru untuk ID klien, dan tambahkan rahasia klien baru jika Anda menggunakan perwakilan layanan untuk penyebaran. Anda juga dapat memilih untuk menyimpan ID langganan dan ID penyewa sebagai rahasia.

Menambahkan alur kerja Anda

Pada repositori GitHub, buka Tindakan.

  1. Pilih Siapkan alur kerja Anda sendiri.

  2. Hapus semuanya setelah bagian on: di file alur kerja Anda. Misalnya, alur kerja Anda yang tersisa mungkin terlihat seperti contoh ini:

    name: CI
    
    on:
    push:
        branches: [ master ]
    pull_request:
        branches: [ master ]
    
  3. Ubah nama alur kerja Anda. Di tab Marketplace, cari tindakan penyebaran ruang kerja Synapse, lalu tambahkan tindakan.

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

  4. Atur nilai yang diperlukan dan templat ruang kerja:

    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. Anda siap untuk menerapkan perubahan. Pilih Mulai penerapan, masukkan judul, lalu tambahkan deskripsi (opsional). Lalu, pilih Terapkan file baru.

    Screenshot that shows committing the workflow in GitHub.

    File akan muncul di folder .github/workflows pada repositori Anda.

    Catatan

    Identitas terkelola hanya didukung dengan mesin virtual yang dihosting sendiri di Azure. Pastikan untuk mengatur pengeksekusi untuk dihost sendiri. Aktifkan identitas terkelola yang ditetapkan sistem untuk mesin virtual Anda dan tambahkan ke Azure Synapse Studio Anda sebagai admin Synapse.

Meninjau penyebaran Anda

  1. Pada repositori GitHub, buka Tindakan.

  2. Untuk melihat log detail eksekusi alur kerja Anda, buka hasil pertama:

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

Buat parameter kustom di templat ruang kerja

Jika Anda menggunakan CI/CD otomatis dan ingin mengubah beberapa properti selama penyebaran, tetapi properti tidak diparameter secara default, Anda dapat mengambil alih templat parameter default.

Untuk mengambil alih template parameter default, buat template parameter khusus bernama template-parameters-definition.json di direktori akar cabang Git Anda. Anda harus menggunakan nama file yang sama persis. Jika ruang kerja Azure Synapse diterbitkan dari cabang kolaborasi atau tugas penyebaran memvalidasi artefak di cabang lain, ia akan membaca file ini dan menggunakan konfigurasinya untuk menghasilkan parameter. Jika ruang kerja Azure Synapse tidak menemukan file tersebut, ruang kerja akan menggunakan templat parameter default.

Sintaks parameter kustom

Anda dapat menggunakan panduan berikut untuk membuat file parameter kustom:

  • Masukkan jalur properti di bawah jenis entitas yang relevan.
  • Mengatur nama properti ke * menunjukkan bahwa Anda ingin memparameterkan semua properti di bawah properti tersebut (hanya turun ke tingkat pertama, tidak secara rekursif). Anda dapat mengatur pengecualian untuk konfigurasi ini.
  • Mengatur nilai properti sebagai string menunjukkan bahwa Anda ingin membuat parameter properti. Gunakan format <action>:<name>:<stype>.
    • <action> bisa menjadi salah satu karakter ini:
      • = berarti mempertahankan nilai saat ini sebagai nilai default untuk parameter.
      • - berarti tidak mempertahankan nilai default untuk parameter.
      • | adalah kasus khusus untuk rahasia dari Azure Key Vault untuk kunci atau string koneksi.
    • <name> adalah nama parameter. Jika kosong, nama properti akan dipilih. Jika nilainya dimulai dengan karakter -, nama akan disingkat. Misalnya, AzureStorage1_properties_typeProperties_connectionString akan disingkat menjadi AzureStorage1_connectionString.
    • <stype> adalah jenis parameter. Jika <stype> kosong, jenis defaultnya adalah string. Nilai yang didukung: string, securestring, int, bool, object, secureobject, dan array.
  • Menentukan array dalam file menunjukkan bahwa properti yang cocok dalam template adalah array. Azure Synapse mengulangi semua objek dalam larik dengan menggunakan definisi yang ditentukan. Objek kedua, string, menjadi nama properti, yang digunakan sebagai nama untuk parameter untuk setiap perulangan.
  • Definisi tidak boleh spesifik untuk instans sumber daya. Definisi apa pun berlaku untuk semua sumber daya dengan jenis tersebut.
  • Secara default, semua string aman (seperti rahasia Key Vault) dan string aman, seperti string koneksi, kunci, dan token, diparameterkan.

Contoh definisi templat parameter

Berikut adalah contoh definisi templat parameter:

{
    "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": "="
            }
        }
    }
}

Berikut adalah penjelasan tentang bagaimana templat sebelumnya disusun, berdasarkan jenis sumber daya.

notebooks

  • Setiap properti pada jalur properties/bigDataPool/referenceName diparameterkan dengan nilai defaultnya. Anda dapat memparameterkan kumpulan Spark terlampir untuk setiap file notebook.

sqlscripts

  • Pada jalur properties/content/currentConnection, properti poolName dan databaseName diparameterkan sebagai string tanpa nilai default dalam templat.

pipelines

  • Setiap properti pada jalur activities/typeProperties/waitTimeInSeconds diparameterkan. Setiap aktivitas dalam alur yang memiliki properti tingkat kode bernama waitTimeInSeconds (misalnya, aktivitas Wait) diparameterkan sebagai angka, dengan nama default. Properti tidak akan memiliki nilai default di templat Resource Manager. Sebagai gantinya, properti akan dimintai masukan selama penyebaran Resource Manager.
  • Properti headers (misal, dalam aktivitas Web) diparameterkan dengan jenis object (Objek). Properti headers memiliki nilai default yang nilainya sama dengan pabrik sumber.

integrationRuntimes

  • Semua properti d jalur typeProperties diparameterkan dengan nilai defaultnya masing-masing. Misalnya, dua properti di bawah jenis properti IntegrationRuntimes: computeProperties dan ssisProperties. Kedua jenis properti dibuat dengan jenis dan nilai default masing-masing (Objek).

triggers

  • Di bawah typeProperties, dua properti diparameterkan:

    • Properti maxConcurrency memiliki nilai default dan merupakan jenis string. Nama parameter default dari properti maxConcurrency adalah <entityName>_properties_typeProperties_maxConcurrency.
    • Properti recurrence juga diparameterkan. Semua properti di bawah properti recurrence diatur untuk diparameterkan sebagai string, dengan nilai default dan nama parameter. Pengecualiannya adalah properti interval, yang diparameterkan sebagai jenis int. Nama parameter diakhiri dengan <entityName>_properties_typeProperties_recurrence_triggerSuffix. Demikian pula, properti freq adalah string dan diparameterkan sebagai string. Namun, properti freq diparameterkan tanpa nilai default. Namanya disingkat dan diberi akhiran, seperti <entityName>_freq.

    Catatan

    Maksimum 50 pemicu saat ini didukung.

linkedServices

  • Layanan tertaut bersifat unik. Karena himpunan data dan layanan tertaut memiliki beragam jenis, Anda dapat memberikan kustomisasi khusus jenis. Dalam contoh sebelumnya, untuk semua layanan jenis AzureDataLakeStore yang tertaut, templat tertentu akan diterapkan. Untuk semua lainnya (diidentifikasi melalui penggunakan karakter *), templat berbeda diterapkan.
  • Properti connectionString diparameterkan sebagai nilai securestring. Properti ini tidak akan memiliki nilai default. Nama parameter disingkat dan diberi akhiran connectionString.
  • Properti secretAccessKey diparameterkan sebagai nilai AzureKeyVaultSecret (misalnya, dalam layanan tertaut Amazon S3). Properti ini otomatis diparameterkan sebagai rahasia Azure Key Vault dan diambil dari brankas kunci yang dikonfigurasi. Anda juga dapat memparameterkan sendiri brankas kunci.

datasets

  • Meskipun Anda dapat menyesuaikan jenis dalam himpunan data, konfigurasi tingkat * eksplisit tidak diperlukan. Dalam contoh sebelumnya, semua properti himpunan data di bawah typeProperties diparameterkan.

Praktik terbaik untuk CI/CD

Jika Anda menggunakan integrasi Git dengan ruang kerja Azure Synapse dan memiliki alur CI/CD yang memindahkan perubahan Anda dari pengembangan ke pengujian lalu ke produksi, kami merekomendasikan praktik terbaik berikut:

  • Hanya integrasikan ruang kerja pengembangan dengan Git. Jika Anda menggunakan integrasi Git, hanya integrasikan ruang kerja Azure Synapse pengembangan dengan Git. Perubahan pada ruang kerja produksi dan pengujian disebarkan melalui CI/CD dan tidak memerlukan integrasi Git.
  • Siapkan kumpulan sebelum Anda memigrasikan artefak. Jika Anda memiliki skrip SQL atau notebook yang dilampirkan ke kumpulan di ruang kerja pengembangan, gunakan nama kumpulan yang sama di lingkungan yang berbeda.
  • Sinkronkan penerapan versi di infrastruktur sebagai skenario kode. Untuk mengelola infrastruktur (jaringan, mesin virtual, penyeimbang muatan, dan topologi koneksi) dalam model deskriptif, gunakan penerapan versi yang sama seperti yang digunakan tim DevOps untuk kode sumber.
  • Mengulas praktik terbaik Azure Data Factory. Jika Anda menggunakan Data Factory, lihat praktik terbaik untuk artefak Data Factory.

Memecahkan masalah penyebaran artefak

Gunakan tugas penyebaran ruang kerja Synapse untuk menyebarkan artefak Synapse

Di Azure Synapse, tidak seperti di Data Factory, artefak bukan sumber daya Resource Manager. Anda tidak dapat menggunakan tugas penyebaran templat ARM untuk menyebarkan artefak Azure Synapse. Sebagai gantinya, gunakan tugas penyebaran ruang kerja Synapse untuk menyebarkan artefak, dan menggunakan tugas penyebaran ARM untuk penyebaran sumber daya ARM (kumpulan dan ruang kerja). Sementara itu tugas ini hanya mendukung templat Synapse di mana sumber daya telah mengetik Microsoft.Synapse. Dan dengan tugas ini, pengguna dapat menyebarkan perubahan dari cabang apa pun secara otomatis tanpa mengklik publikasi secara manual di studio Synapse. Berikut ini adalah beberapa masalah yang sering diangkat.

1. Penerbitan gagal: file arm ruang kerja lebih dari 20MB

Ada batasan ukuran file di penyedia git, misalnya, di Azure DevOps ukuran file maksimumnya adalah 20 MB. Setelah ukuran file templat ruang kerja melebihi 20Mb, kesalahan ini terjadi ketika Anda menerbitkan perubahan di studio Synapse, di mana file templat ruang kerja dihasilkan dan disinkronkan ke git. Untuk mengatasi masalah ini, Anda dapat menggunakan tugas penyebaran Synapse dengan memvalidasi atau memvalidasi dan menyebarkan operasi untuk menyimpan file templat ruang kerja langsung ke agen alur dan tanpa penerbitan manual di synapse studio.

2. Kesalahan token tak terduga dalam rilis

Jika file parameter Anda memiliki nilai parameter yang tidak lolos, alur rilis gagal mengurai file dan menghasilkan kesalahan unexpected token. Kami menyarankan agar Anda mengambil alih parameter atau menggunakan Azure Key Vault untuk mengambil nilai parameter. Anda juga dapat menggunakan karakter double escape untuk menyelesaikan masalah.

3. Penyebaran runtime integrasi gagal

Jika Anda memiliki templat ruang kerja yang dihasilkan dari ruang kerja yang diaktifkan Vnet terkelola dan mencoba menyebarkan ke ruang kerja biasa atau sebaliknya, kesalahan ini terjadi.

4. Karakter tak terduga yang ditemui saat mengurai nilai

Templat tidak dapat diurai file templat. Cobalah dengan melarikan diri dari garis miring belakang, misalnya. \\Test01\Test

5. Gagal mengambil info ruang kerja, Tidak ditemukan

Info ruang kerja target tidak dikonfigurasi dengan benar. Pastikan koneksi layanan yang telah Anda buat, terlingkup ke grup sumber daya yang memiliki ruang kerja.

6. Penghapusan artefak gagal

Ekstensi akan membandingkan artefak yang ada di cabang penerbitan dengan templat dan berdasarkan perbedaannya akan menghapusnya. Pastikan Anda tidak mencoba menghapus artefak apa pun yang ada di cabang publikasi dan beberapa artefak lain memiliki referensi atau dependensi padanya.

8. Penyebaran gagal dengan kesalahan: posisi json 0

Jika Anda mencoba memperbarui templat secara manual, kesalahan ini akan terjadi. Pastikan Anda belum mengedit templat secara manual.

9. Pembuatan atau pembaruan dokumen gagal karena referensi yang tidak valid

Artefak dalam synapse dapat dirujuk oleh artefak lain. Jika Anda telah membuat parameter atribut yang direferensikan dalam artefak, pastikan untuk memberikan nilai yang benar dan bukan null kepadanya

10. Gagal mengambil status penyebaran dalam penyebaran buku catatan

Buku catatan yang coba Anda sebarkan dilampirkan ke kumpulan spark dalam file templat ruang kerja, saat dalam penyebaran, kumpulan tidak ada di ruang kerja target. Jika Anda tidak membuat parameter nama kumpulan, pastikan bahwa memiliki nama yang sama untuk kumpulan antar lingkungan.