Bagikan melalui


Tugas Azure Pipelines - Azure Database untuk PostgreSQL server fleksibel

BERLAKU UNTUK: Azure Database for PostgreSQL - Server Fleksibel

Anda dapat secara otomatis menyebarkan pembaruan database Anda ke server fleksibel Azure Database for PostgreSQL setelah setiap build yang berhasil dengan Azure Pipelines. Anda dapat menggunakan tugas CLI Azure untuk memperbarui database dengan file SQL atau skrip SQL sebaris terhadap database. Tugas ini dapat dijalankan pada agen lintas platform yang berjalan di sistem operasi Linux, macOS, atau Windows.

Prasyarat

  • Akun Azure. Jika Anda tidak memilikinya, dapatkan uji coba gratis.
  • Koneksi layanan Azure Resource Manager ke akun Azure Anda.
  • Agen yang dihosting Microsoft memiliki Azure CLI yang telah diinstal sebelumnya. Namun jika Anda menggunakan agen privat, instal Azure CLI di komputer yang menjalankan agen build dan rilis. Jika agen sudah berjalan pada komputer tempat Azure CLI diinstal, mulai ulang agen untuk memastikan semua variabel tahap yang relevan diperbarui.
  • Buat server fleksibel Azure Database for PostgreSQL.

Menggunakan file SQL

Contoh berikut menggambarkan cara meneruskan argumen database dan menjalankan perintah execute

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptType: 'pscore'
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
    inlineScript: |
      az login --allow-no-subscription
      az postgres flexible-server execute --name $(SERVERNAME) \
      --admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
      --database-name $(DBNAME) --file-path /code/sql/db-schema-update.sql

Gunakan skrip SQL inline

Contoh berikut menggambarkan cara menjalankan skrip SQL sebaris menggunakan perintah execute.

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptType: 'pscore'
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
      -INLINESCRIPT 
    inlineScript: |
      az login --allow-no-subscription 
      az postgres flexible-server execute --name $(SERVERNAME) --admin-user $(DBUSER) \
      --admin-password '$(DBPASSWORD)'  --database-name $(DBNAME) \
      --querytext "UPDATE items SET items.retail = items.retail * 0.9 WHERE items.id =100;" 

Input tugas

Anda dapat melihat daftar lengkap semua input tugas saat menggunakan tugas Azure CLI dengan Azure Pipelines.

Parameter Deskripsi
Langganan Azure (Wajib) Sediakan langganan Azure Resource Manager untuk penyebaran. Parameter ini hanya ditampilkan ketika versi tugas yang dipilih adalah 0.* karena tugas Azure CLI v1.0 hanya mendukung langganan Azure Resource Manager.
jenis skrip (Wajib) Berikan jenis skrip. Skrip yang didukung adalah PowerShell, PowerShell Core, Bat, Shell, dan skrip. Saat menjalankan agen Linux, pilih salah satu dari berikut ini: bash atau pscore . Saat menjalankan agen Windows, pilih salah satu hal berikut ini: batch, , psdan pscore.
scriptLocation (Wajib) Sediakan jalur ke skrip, misalnya jalur file nyata atau gunakan Inline script saat menyediakan skrip sebaris. Nilai defaultnya adalah scriptPath.
scriptPath (Wajib) Jalur skrip yang memenuhi syarat sepenuhnya (.ps1 atau .bat atau .cmd saat menggunakan agen berbasis Windows lain atau .ps1 atau .sh saat menggunakan agen berbasis linux) atau jalur yang terkait dengan direktori kerja default.
inlineScript (Wajib) Anda dapat menuliskan skrip sebaris Anda di sini. Saat menggunakan agen Windows, gunakan PowerShell, PowerShell Core, atau skrip batch. Sedangkan saat menggunakan agen berbasis Linux, gunakan PowerShell Core atau skrip shell. Untuk file batch, gunakan awalan "call" sebelum setiap perintah Azure. Anda juga dapat meneruskan variabel yang telah ditentukan dan kustom ke skrip ini menggunakan argumen.
Contoh untuk PowerShell/PowerShellCore/shell: az --version az account show
Contoh untuk batch: call az --version call az account show.
argumen (Opsional) Berikan semua argumen yang diberikan kepada skrip. Misalnya -SERVERNAME mydemoserver.
PreferensiAksiKesalahanPowerShell (Opsional) Menambahkan baris $ErrorActionPreference = 'VALUE' di bagian atas skrip PowerShell/PowerShell Core Anda. Nilai defaultnya adalah stop. Nilai yang didukung adalah stop, continue, dan silentlyContinue.
addSpnToEnvironment (Opsional) Menambahkan ID prinsipal layanan dan kunci endpoint Azure yang Anda pilih ke lingkungan eksekusi skrip. Anda dapat menggunakan variabel-variabel ini: $env:servicePrincipalId, $env:servicePrincipalKey, dan $env:tenantId di skrip Anda. Ini hanya dihargai ketika titik akhir Azure memiliki skema autentikasi Prinsipal Layanan. Nilai defaultnya adalah false.
useGlobalConfig (Opsional) Jika ini salah, tugas ini menggunakan direktori konfigurasi Azure CLI sendiri yang terpisah. Ini dapat digunakan untuk menjalankan tugas Azure CLI dalam rilis paralel "
Nilai default: false
workingDirectory (direktori kerja) (Opsional) Direktori yang bekerja saat ini tempat skrip dijalankan. Empty adalah root dari repo (build) atau artefak (rilis), yaitu $(System.DefaultWorkingDirectory).
failOnStandardError (Opsional) Jika ini benar, tugas ini gagal ketika ada kesalahan yang ditulis ke aliran StandardError. Batalkan pemilihan kotak centang untuk mengabaikan kesalahan standar dan mengandalkan kode keluar untuk menentukan status. Nilai defaultnya adalah false.
powerShellIgnoreLASTEXITCODE (Opsional) Jika ini salah, baris if ((Test-Path -LiteralPath variable:\LASTEXITCODE)) { exit $LASTEXITCODE } ditambahkan ke akhir skrip Anda. Ini menyebabkan kode keluar terakhir dari perintah eksternal disebarluaskan sebagai kode keluar PowerShell. Jika tidak, baris tidak ditambahkan ke akhir skrip Anda. Nilai defaultnya adalah false.

Jika mengalami masalah dengan Tugas CLI, lihat cara memecahkan masalah Build dan Rilis.