Bagikan melalui


Alur Azure untuk Azure Database for MySQL - Server Fleksibel

BERLAKU UNTUK: Azure Database for MySQL - Server Fleksibel

Anda dapat secara otomatis menyebarkan pembaruan database Anda ke server fleksibel Azure Database for MySQL 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 sudah diinstal sebelumnya. Namun, jika Anda menggunakan agen privat, instal Azure CLI pada 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.

Mulai cepat ini menggunakan sumber daya yang dibuat di salah satu panduan ini sebagai titik awal:

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>
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
    inlineScript: |
      az login --allow-no-subscription
      az mysql flexible-server execute --name $(SERVERNAME) \
      --admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
      --database-name $(DBNAME) \
      --file-path /code/sql/db-schema-update.sql

Menggunakan skrip SQL inline

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

- task: AzureCLI@2
  displayName: Azure CLI
  inputs:
    azureSubscription: <Name of the Azure Resource Manager service connection>
    scriptLocation: inlineScript
    arguments:
      -SERVERNAME mydemoserver `
      -DBNAME pollsdb `
      -DBUSER pollsdbuser`
      -DBPASSWORD pollsdbpassword
      -INLINESCRIPT 
    inlineScript: |
      az login --allow-no-subscription
      az mysql flexible-server execute --name $(SERVERNAME) \
      --admin-user $(DBUSER) --admin-password '$(DBPASSWORD)' \
      --database-name $(DBNAME) \
      --query-text "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
azureSubscription (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.
scriptType (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 pilihan berikut: batch,ps, dan 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 atau PowerShell Core atau skrip batch saat menggunakan PowerShell Core atau skrip shell saat menggunakan agen berbasis Linux. Untuk file batch, gunakan awalan "panggilan" 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.
arguments (Opsional) Berikan semua argumen yang diteruskan ke skrip. Misalnya -SERVERNAME mydemoserver.
powerShellErrorActionPreference (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 perwakilan layanan dan kunci titik akhir 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 dijalankan ketika titik akhir Azure memiliki skema autentikasi Perwakilan Layanan. Nilai defaultnya adalah false.
useGlobalConfig (Opsional) Jika ini salah, tugas ini akan menggunakan direktori konfigurasi Azure CLI terpisah. Ini dapat digunakan untuk menjalankan tugas Azure CLI dalam rilis paralel "
Nilai default: false
workingDirectory (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 akan 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 akan menyebabkan kode keluar terakhir dari perintah eksternal disebarkan sebagai kode keluar PowerShell. Jika tidak, baris tersebut tidak ditambahkan ke akhir skrip Anda. Nilai defaultnya adalah false.

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

Langkah berikutnya

Berikut beberapa tugas terkait untuk diterapkan ke Azure.