Bagikan melalui


Ekstensi Azure DevOps SQL Server Integration Services (SSIS) DevOps Tools

Ekstensi SSIS DevOps Tools tersedia di Azure DevOps Marketplace. SSIS DevOps mendukung Azure DevOps Services, Azure DevOps Server 2019 ke atas.

Jika Anda tidak memiliki organisasi Azure DevOps , pertama-tama daftar untuk Azure Pipelines, tambahkan ekstensi SSIS DevOps Tools mengikuti langkah-langkahnya.

Alat DevOps SSIS mencakup tugas Build SSIS, tugas rilis Penyebaran SSIS, dan tugas Konfigurasi Katalog SSIS.

  • Tugas Build SSIS mendukung pembuatan file dtproj dalam model penyebaran proyek atau model penyebaran paket.

  • Tugas SSIS Deploy mendukung penyebaran file ispac tunggal atau beberapa ke katalog SSIS lokal dan runtime integrasi Azure-SSIS, atau file SSISDeploymentManifest dan file terkait ke berbagi file lokal atau Azure.

  • Tugas Konfigurasi Katalog SSIS mendukung konfigurasi folder/proyek/lingkungan Katalog SSIS dengan file konfigurasi dalam format JSON. Tugas ini mendukung skenario berikut:

    • Folder
      • Buat folder.
      • Perbarui deskripsi folder.
    • Proyek
      • Konfigurasikan nilai parameter, baik nilai harfiah maupun nilai yang dirujuk didukung.
      • Tambahkan referensi lingkungan.
    • Lingkungan
      • Buat lingkungan.
      • Perbarui deskripsi lingkungan.
      • Membuat atau memperbarui variabel lingkungan.

Tugas Build SSIS

build task

Properti

Jalur proyek

Jalur folder atau file proyek yang akan dibangun. Jika jalur folder ditentukan, tugas Build SSIS akan mencari semua file dtproj secara rekursif di bawah folder ini dan membangun semuanya.

Jalur proyek tidak boleh kosong, diatur sebagai . untuk membangun dari folder akar repositori.

Konfigurasi proyek

Nama konfigurasi proyek yang akan digunakan untuk build. Jika tidak disediakan, ini default ke konfigurasi proyek pertama yang ditentukan di setiap file dtproj.

Jalur output

Jalur folder terpisah untuk menyimpan hasil build, yang dapat diterbitkan sebagai artefak build melalui tugas menerbitkan artefak build.

Batasan dan masalah umum

  • Tugas Build SSIS bergantung pada desainer Visual Studio dan SSIS, yang wajib ditujukan pada agen build. Dengan demikian, untuk menjalankan tugas Build SSIS di alur:

    • untuk agen yang dihosting Microsoft, Anda harus memilih gambar yang tersedia yang menyertakan ekstensi Visual Studio dan SQL Server Integration Services, misalnya, windows-2022. Detail mengacu pada dokumentasi agen yang dihosting Microsoft untuk perangkat lunak yang disertakan dalam gambar yang tersedia.
    • untuk agen yang dihost sendiri, instal Visual Studio dan perancang SSIS (baik ekstensi Vs2022 + Proyek SSIS, atau ekstensi VS2019 + Proyek SSIS) pada agen yang dihost sendiri.
  • Untuk membangun proyek SSIS menggunakan komponen siap pakai apa pun (termasuk paket fitur SSIS Azure, dan komponen pihak ketiga lainnya), komponen siap pakai tersebut harus diinstal pada komputer tempat agen alur berjalan. Untuk agen yang dihosting Microsoft, pengguna dapat menambahkan tugas Skrip PowerShell atau tugas Skrip Baris Perintah untuk mengunduh dan menginstal komponen sebelum tugas Build SSIS dijalankan. Di bawah ini adalah sampel skrip PowerShell untuk menginstal Azure Feature Pack:

wget -Uri https://download.microsoft.com/download/E/E/0/EE0CB6A0-4105-466D-A7CA-5E39FA9AB128/SsisAzureFeaturePack_2017_x86.msi -OutFile AFP.msi

start -Wait -FilePath msiexec -Args "/i AFP.msi /quiet /l* log.txt"

cat log.txt
  • Tingkat perlindungan EncryptSensitiveWithPassword dan EncryptAllWithPassword tidak didukung dalam tugas Build SSIS. Pastikan semua proyek SSIS dalam basis kode tidak menggunakan dua tingkat perlindungan ini, atau tugas Build SSIS akan berhenti merespons dan waktu habis selama eksekusi.

Tugas Build SSIS versi 1.*

Penyempurnaan dalam versi 1.*:

  • Hapus dependensi pada desainer Visual Studio dan SSIS. Tugas build dapat berjalan di agen yang dihosting Microsoft atau agen yang dihost sendiri dengan OS Windows dan .NET framework 4.6.2 atau yang lebih tinggi.

  • Tidak perlu menginstal komponen di luar kotak.

  • Tingkat perlindungan dukungan EncryptionWithPassword dan EncryptionAllWithPassword.

Batasan dan masalah umum

  • Tugas Build SSIS versi 1.* tidak mendukung pembangunan proyek SSIS yang berisi paket SSIS dengan tanda tangan digital.

Properti versi 1.* saja

Kata Sandi Proyek

Kata sandi proyek SSIS dan paketnya. Argumen ini hanya valid ketika tingkat perlindungan proyek dan paket SSIS adalah EncryptSensitiveWithPassword atau EncryptAllWithPassword. Untuk model penyebaran paket, semua paket harus berbagi kata sandi yang sama yang ditentukan oleh argumen ini.

Strip Data Sensitif

Konversi tingkat perlindungan proyek SSIS ke DontSaveSensitve jika nilai ini benar. Ketika tingkat perlindungan adalah EncryptSensitiveWithPassword atau EncryptAllWithPassword, argumen Kata Sandi Proyek harus diatur dengan benar. Opsi ini hanya berlaku untuk model penyebaran proyek.

Tugas Penyebaran SSIS

deploy task

Properti

Jalur sumber

Jalur sumber FILE ISPAC atau SSISDeploymentManifest yang ingin Anda sebarkan. Jalur ini bisa berupa jalur folder atau jalur file.

Tipe tujuan

Jenis tujuan. Saat ini tugas Penyebaran SSIS mendukung dua jenis:

  • Sistem File: Sebarkan file SSISDeploymentManifest dan file terkait ke sistem file tertentu. Baik berbagi file lokal maupun Azure didukung.
  • SSISDB: Sebarkan file ISPAC ke katalog SSIS tertentu, yang dapat dihosting di SQL Server lokal atau Azure-SSIS Integration Runtime.

Server tujuan

Nama Mesin Database tujuan. Ini bisa menjadi nama SQL Server lokal, Azure SQL Database, atau Azure SQL Managed Instance. Properti ini hanya terlihat ketika jenis tujuan adalah SSISDB.

Jalur tujuan

Jalur folder tujuan tempat file sumber akan disebarkan. Contohnya:

  • /SSISDB/<folderName>
  • \\<machineName>\<shareFolderName>\<optionalSubfolderName>

Tugas SSIS Deploy akan membuat folder dan subfolder jika tidak ada.

Jenis autentikasi

Jenis autentikasi untuk mengakses server tujuan yang ditentukan. Properti ini hanya terlihat ketika Jenis tujuan adalah SSISDB. Secara umum jenis autentikasi di bawah ini didukung:

  • Otentikasi Windows
  • Autentikasi SQL Server
  • Direktori Aktif - Kata sandi
  • Direktori Aktif - Terintegrasi

Tetapi apakah jenis autentikasi tertentu didukung tergantung pada jenis server tujuan dan jenis agen. Matriks dukungan detail tercantum dalam tabel di bawah ini.

Jenis server tujuan Agen yang di-host Microsoft Agen yang di-host mandiri
SQL Server lokal atau VM T/A Otentikasi Windows
Azure SQL Autentikasi SQL Server
Direktori Aktif - Kata sandi
Autentikasi SQL Server
Direktori Aktif - Kata Sandi
Direktori Aktif - Terintegrasi

Nama domain

Nama domain untuk mengakses sistem file yang ditentukan. Properti ini hanya terlihat ketika Tipe tujuan adalah Sistem File. Anda dapat membiarkannya kosong ketika akun pengguna untuk menjalankan agen yang dihost sendiri telah diberikan akses baca/tulis ke jalur tujuan yang ditentukan.

Nama Pengguna

Nama pengguna untuk mengakses sistem file atau SSISDB yang ditentukan. Properti ini terlihat ketika Jenis tujuan adalah Sistem File atau Jenis autentikasi adalah Autentikasi SQL Server atau Direktori Aktif - Kata Sandi. Anda dapat membiarkannya kosong ketika jenis tujuan adalah sistem file, dan akun pengguna untuk menjalankan agen yang dihost sendiri telah diberikan akses baca/tulis ke jalur tujuan yang ditentukan.

Kata sandi

Kata sandi untuk mengakses sistem file atau SSISDB yang ditentukan. Properti ini terlihat ketika jenis tujuan adalah sistem file atau jenis autentikasi adalah autentikasi SQL Server atau Direktori Aktif - kata sandi. Anda dapat membiarkannya kosong ketika jenis tujuan adalah sistem file, dan akun pengguna untuk menjalankan agen yang dihost sendiri telah diberikan akses baca/tulis ke jalur tujuan yang ditentukan.

Timpa proyek yang ada atau file SSISDeploymentManifest dengan nama yang sama

Tentukan apakah menimpa proyek yang ada atau file SSISDeploymentManifest dengan nama yang sama. Jika 'Tidak', tugas Penyebaran SSIS akan melompati penyebaran proyek atau file tersebut.

Lanjutkan penyebaran saat kesalahan terjadi

Tentukan apakah akan melanjutkan penyebaran untuk proyek atau file yang tersisa saat terjadi kesalahan. Jika 'Tidak', tugas SSIS Deploy akan segera berhenti ketika kesalahan terjadi.

Batasan dan masalah umum

Tugas Penyebaran SSIS saat ini tidak mendukung skenario berikut:

  • Mengonfigurasi lingkungan di katalog SSIS.
  • Menyebarkan ISPAC ke Azure SQL Server atau Azure SQL Managed Instance, yang hanya memungkinkan autentikasi multifaktor.
  • Menyebarkan paket ke MSDB atau Penyimpanan Paket SSIS.
  • Jika Anda menginstal ekstensi SSIS DevOps Tools di Azure DevOps Server, Anda mungkin melihat pesan "Ukuran paket ekstensi melebihi ukuran paket maksimum." Untuk mengatasi masalah ini, selesaikan langkah-langkah berikut:
    1. Koneksi ke instans SQL Server lokal dan pilih database Gallery_Configuration.
    2. Jalankan kueri INSERT INTO dbo.tbl_RegistryItems VALUES (1,'#\Configuration\Service\Gallery\LargeExtensionUpload\SSIS\','MaxPackageSizeMB\',50). Ubah 50 ke angka yang lebih tinggi jika ekstensi lebih besar dari 50 MB.
    3. Setelah Anda menjalankan kueri, mulai ulang Layanan Informasi Internet. Coba lagi untuk mengunggah ekstensi.
    4. Jika kesalahan berlanjut, silakan hubungi tim dukungan SQL Server.

SSIS Sebarkan tugas versi 1.*

Penyempurnaan dalam versi 1.*:

  • Tingkat perlindungan dukungan EncryptionWithPassword dan EncryptionAllWithPassword.

Properti versi 1.* saja

Kata Sandi Proyek

Kata sandi untuk mendekripsi file ISPAC atau DTSX. Argumen ini hanya valid ketika tingkat perlindungan adalah EncryptSensitiveWithPassword atau EncryptAllWithPassword.

Tugas Konfigurasi Katalog SSIS

catalog configuration task

Properti

Sumber file konfigurasi

Sumber file JSON konfigurasi katalog SSIS. Ini bisa menjadi "Jalur file" atau "Sebaris".

Lihat detail tentang cara menentukan konfigurasi JSON:

Jalur file JSON konfigurasi

Jalur file JSON konfigurasi katalog SSIS. Properti ini hanya terlihat saat memilih "Jalur file" sebagai sumber file konfigurasi.

Untuk menggunakan variabel alur dalam file JSON konfigurasi, Anda perlu menambahkan tugas Transformasi File sebelum tugas ini mengganti nilai konfigurasi dengan variabel alur. Untuk informasi selengkapnya, lihat Substitusi variabel JSON.

Konfigurasi sebaris JSON

JSON sebaris dari konfigurasi katalog SSIS. Properti ini hanya terlihat saat memilih "Sebaris" sebagai sumber file konfigurasi. Variabel alur dapat langsung digunakan.

Konfigurasi gulung balik saat terjadi kesalahan

Apakah akan mengembalikan konfigurasi yang dibuat oleh tugas ini ketika terjadi kesalahan.

Server target

Nama Mesin Database target. Ini bisa menjadi nama SQL Server lokal, Azure SQL Database, atau Azure SQL Managed Instance.

Jenis autentikasi

Jenis autentikasi untuk mengakses server target yang ditentukan. Secara umum jenis autentikasi di bawah ini didukung:

  • Otentikasi Windows
  • Autentikasi SQL Server
  • Direktori Aktif - Kata sandi
  • Direktori Aktif - Terintegrasi

Tetapi apakah jenis autentikasi tertentu didukung tergantung pada jenis server tujuan dan jenis agen. Matriks dukungan detail tercantum dalam tabel di bawah ini.

Jenis server tujuan Agen yang di-host Microsoft Agen yang di-host mandiri
SQL Server lokal atau VM T/A Otentikasi Windows
Azure SQL Autentikasi SQL Server
Direktori Aktif - Kata sandi
Autentikasi SQL Server
Direktori Aktif - Kata Sandi
Direktori Aktif - Terintegrasi

Nama Pengguna

Nama pengguna untuk mengakses SQL Server target. Properti ini hanya terlihat ketika Jenis autentikasi adalah Autentikasi SQL Server atau Direktori Aktif - Kata Sandi.

Kata sandi

Kata sandi untuk mengakses SQL Server target. Properti ini hanya terlihat ketika Jenis autentikasi adalah Autentikasi SQL Server atau Direktori Aktif - Kata Sandi.

Tentukan konfigurasi JSON

Skema JSON konfigurasi memiliki tiga lapisan:

  • katalog
  • folder
  • proyek dan lingkungan

catalog configuration schema

Contoh konfigurasi sebaris JSON

{
  "folders": [
    {
      "name": "devopsdemo",
      "description": "devops demo folder",
      "projects": [
        {
          "name": "catalog devops",
          "parameters": [
            {
              "name": "password",
              "container": "Package.dtsx",
              "value": "passwd",
              "valueType": "referenced"
            },
            {
              "name": "serverName",
              "container": "catalog devops",
              "value": "localhost",
              "valueType": "literal"
            }
          ],
          "references": [
            {
              "environmentName": "test",
              "environmentFolder": "devopsdemo"
            },
            {
              "environmentName": "test",
              "environmentFolder": "."
            }
          ]
        }
      ],
      "environments": [
        {
          "name": "test",
          "description": "test",
          "variables": [
            {
              "name": "passwd",
              "type": "string",
              "description": "",
              "value": "$(SSISDBServerAdminPassword)",
              "sensitive": true
            },
            {
              "name": "serverName",
              "type": "string",
              "description": "",
              "value": "$(TargetServerName)",
              "sensitive": false
            }
          ]
        }
      ]
    }
  ]
}

Skema JSON

Atribut Katalog
Properti Deskripsi Catatan
Folder Array objek folder. Setiap objek berisi informasi konfigurasi untuk folder katalog. Lihat Atribut Folder untuk skema objek folder.
Atribut Folder
Properti Deskripsi Catatan
nama Nama folder katalog. Folder akan dibuat jika tidak ada.
description Deskripsi folder katalog. Nilai null akan dilewati.
projects Array objek proyek. Setiap objek berisi informasi konfigurasi untuk proyek. Lihat Atribut Proyek untuk skema objek proyek.
environments Array objek lingkungan. Setiap objek berisi informasi konfigurasi untuk lingkungan. Lihat Atribut Lingkungan untuk skema objek lingkungan.
Atribut Proyek
Properti Deskripsi Catatan
nama Nama proyek. Objek proyek akan dilewati jika proyek tidak ada di folder induk.
parameter Array objek parameter. Setiap objek berisi informasi konfigurasi untuk parameter. Lihat Atribut Parameter skema objek parameter.
referensi Array objek referensi. Setiap objek mewakili referensi lingkungan ke proyek target. Lihat Atribut Referensi untuk skema objek referensi.
Atribut Parameter
Properti Deskripsi Catatan
nama Nama parameter.
  • Parameter dapat berupa parameter proyek atau parameter paket.
  • Parameter dilewati jika tidak ada.
  • Jika parameter adalah properti pengelola koneksi, nama harus dalam format CM.<Nama> Pengelola Sambungan.<Nama> Properti.
  • kontainer Kontainer parameter.
  • Jika parameter adalah parameter proyek, kontainer harus menjadi nama proyek.
  • Jika ini adalah parameter paket, kontainer harus berupa nama paket dengan ekstensi .dtsx .
  • value Nilai parameter.
  • Ketika valueType dirujuk: Nilai adalah referensi ke variabel lingkungan dalam jenis string.
  • Ketika valueType bersifat literal: Atribut ini mendukung nilai JSON boolean, angka, dan string yang valid.
  • Nilai akan dikonversi ke jenis parameter target. Kesalahan akan terjadi jika tidak dapat dikonversi.
  • Nilai null tidak valid. Tugas akan melewati objek parameter ini, dan memberikan peringatan.
  • valueType Jenis nilai parameter. Jenis yang valid adalah:
    literal: Atribut nilai mewakili nilai harfiah.
    dirujuk: Atribut nilai mewakili referensi ke variabel lingkungan.
    Atribut Referensi
    Properti Deskripsi Catatan
    environmentFolder Nama folder lingkungan. Folder akan dibuat jika tidak ada.
    Nilai dapat berupa ".", yang mewakili folder induk proyek, yang mereferensikan lingkungan.
    environmentName Nama lingkungan yang dirujuk. Lingkungan yang ditentukan akan dibuat jika tidak ada.
    Atribut Lingkungan
    Properti Deskripsi Catatan
    nama Nama lingkungan. Lingkungan akan dibuat jika tidak ada.
    description Deskripsi lingkungan. Nilai null akan dilewati.
    variabel Array objek variabel. Setiap objek berisi informasi konfigurasi untuk variabel lingkungan.lihat Atribut Variabel untuk skema objek variabel.
    Atribut Variabel
    Properti Deskripsi Catatan
    nama Nama variabel lingkungan. Variabel lingkungan akan dibuat jika tidak ada.
    jenis Jenis data variabel lingkungan. Jenis yang valid adalah:
    Boolean
    byte
    datetime
    Desimal
    Double
    int16
    int32
    int64
    sbyte
    tunggal
    string
    uint32
    uint64
    description Deskripsi variabel lingkungan. Nilai null akan dilewati.
    value Nilai variabel lingkungan. Atribut ini mendukung nilai JSON boolean, angka, dan string yang valid.
    Nilai akan dikonversi ke jenis yang ditentukan oleh atribut jenis . Kesalahan akan terjadi jika konversi gagal.
    Nilai null tidak valid. Tugas akan melewati objek variabel lingkungan ini, dan memberikan peringatan.
    Sensitif Apakah nilai variabel lingkungan sensitif. Input yang valid adalah:
    benar
    salah

    Catatan rilis

    Versi 1.0.6

    Tanggal Rilis: 1 September 2021

    • Rilis Ketersediaan Umum (GA).

    Versi 1.0.5

    Tanggal Rilis: 2 Juni 2021

    • Memperbaiki masalah yang terkadang SSIS Build Task versi 1.* gagal membangun proyek/paket dengan tingkat perlindungan EncryptSensitiveWithPassword atau EncryptAllWithPassword dengan kesalahan "Vektor inisialisasi yang ditentukan (IV) tidak cocok dengan ukuran blok untuk algoritma ini."
    • Menghapus konten JSON di log tugas Konfigurasi Katalog SSIS saat "Sumber file konfigurasi" adalah "Jalur File".

    Versi 1.0.4

    Tanggal Rilis: 21 April 2021

    • Tugas Build SSIS versi 1.* (Pratinjau)
      • Hapus dependensi pada desainer Visual Studio dan SSIS. Tugas build dapat berjalan di agen yang dihosting Microsoft atau agen yang dihost sendiri dengan OS Windows dan .NET framework 4.6.2 atau yang lebih tinggi.
      • Tidak perlu menginstal komponen di luar kotak.
      • Tingkat perlindungan dukungan EncryptionWithPassword dan EncryptionAllWithPassword.
    • SSIS Sebarkan tugas versi 1.* (Pratinjau)
      • Tingkat perlindungan dukungan EncryptionWithPassword dan EncryptionAllWithPassword.

    Versi 1.0.3

    Tanggal Rilis: 21 Oktober 2020

    • Izinkan menentukan akhiran string koneksi untuk tugas Penyebaran SSIS dan tugas Konfigurasi Katalog SSIS.

    Versi 1.0.2

    Tanggal Rilis: 26 Mei 2020

    • Memperbaiki masalah bahwa tugas Konfigurasi Katalog SSIS mungkin gagal dalam beberapa kasus setelah pekerjaan konfigurasi selesai.

    Versi 1.0.1

    Tanggal Rilis: 9 Mei 2020

    • Memperbaiki masalah bahwa tugas Build SSIS selalu membangun seluruh solusi meskipun hanya satu file dtproj yang ditentukan sebagai jalur proyek.

    Versi 1.0.0

    Tanggal Rilis: 8 Mei 2020

    • Rilis Ketersediaan Umum (GA).
    • Menambahkan pembatasan versi .NET framework minimum pada agen. Saat ini versi kerangka kerja .NET minimum adalah 4.6.2.
    • Deskripsi yang disempurnakan tentang tugas Build SSIS dan tugas Penyebaran SSIS.

    Pratinjau Versi 0.2.0

    Tanggal Rilis: 31 Maret 2020

    • Tambahkan tugas Konfigurasi Katalog SSIS.

    Pratinjau Versi 0.1.3

    Tanggal Rilis: 19 Januari 2020

    • Memperbaiki masalah yang mencegah ispac disebarkan jika nama file aslinya diubah.

    Pratinjau Versi 0.1.2

    Tanggal Rilis: 13 Januari 2020

    • Menambahkan informasi pengecualian yang lebih rinci di log tugas Penyebaran SSIS saat jenis tujuan adalah SSISDB.
    • Memperbaiki contoh jalur tujuan dalam teks bantuan dari jalur Tujuan properti tugas Penyebaran SSIS.

    Pratinjau Versi 0.1.1

    Tanggal Rilis: 6 Januari 2020

    • Menambahkan pembatasan persyaratan versi agen minimal. Saat ini versi agen minimal dari produk ini adalah 2.144.0.
    • Memperbaiki beberapa teks tampilan yang salah untuk tugas Penyebaran SSIS.
    • Menyempurnakan beberapa pesan kesalahan.

    Pratinjau Versi 0.1.0

    Tanggal Rilis: 5 Desember 2019

    Rilis awal SSIS DevOps Tools. Ini adalah rilis pratinjau.

    Langkah berikutnya