Bagikan melalui


Mulai cepat: Merespons perubahan Azure SQL Database menggunakan Azure Functions

Dalam Mulai Cepat ini, Anda menggunakan Visual Studio Code untuk membuat aplikasi yang merespons perubahan dalam tabel Azure SQL Database. Setelah menguji kode secara lokal, Anda menyebarkannya ke aplikasi fungsi tanpa server baru yang berjalan dalam paket Konsumsi Flex di Azure Functions.

Sumber proyek menggunakan ekstensi Azure Developer CLI (azd) dengan Visual Studio Code untuk menyederhanakan inisialisasi dan verifikasi kode proyek Anda secara lokal, dan menyebarkan kode Anda ke Azure. Penyebaran ini mengikuti praktik terbaik saat ini untuk penyebaran Azure Functions yang aman dan dapat diskalakan.

Penting

Saat menanggapi perubahan dalam database Azure SQL didukung untuk semua bahasa, skenario mulai cepat ini saat ini hanya memiliki contoh untuk C#, Python, dan TypeScript. Untuk menyelesaikan panduan cepat ini, pilih salah satu bahasa yang didukung di bagian atas artikel.

Prasyarat

  • Node.js 18.x atau lebih tinggi. Gunakan perintah node --version untuk memeriksa versi Anda.

Menginisialisasi proyek

Anda dapat menggunakan azd init perintah dari palet perintah untuk membuat proyek kode Azure Functions lokal dari templat.

  1. Di Visual Studio Code, buka folder atau ruang kerja tempat Anda ingin membuat proyek.

  2. Tekan F1 untuk membuka palet perintah, cari dan jalankan perintah Azure Developer CLI (azd): Initialize App (init), lalu pilih Pilih templat.

  3. Saat diminta, cari dan pilih Azure Functions with SQL Triggers and Bindings.

  4. Saat diminta, masukkan nama lingkungan yang unik, seperti sqldbchanges.

Perintah ini menarik file proyek dari repositori templat dan menginisialisasi proyek di folder atau ruang kerja saat ini. Di azd, lingkungan digunakan untuk mempertahankan konteks penyebaran unik untuk aplikasi Anda, dan Anda dapat menentukan lebih dari satu. Ini juga bagian dari nama grup sumber daya yang Anda buat di Azure.

Perintah ini menarik file proyek dari repositori templat dan menginisialisasi proyek di folder atau ruang kerja saat ini. Di azd, lingkungan digunakan untuk mempertahankan konteks penyebaran unik untuk aplikasi Anda, dan Anda dapat menentukan lebih dari satu. Ini juga bagian dari nama grup sumber daya yang Anda buat di Azure.

Perintah ini menarik file proyek dari repositori templat dan menginisialisasi proyek di folder atau ruang kerja saat ini. Di azd, lingkungan digunakan untuk mempertahankan konteks penyebaran unik untuk aplikasi Anda, dan Anda dapat menentukan lebih dari satu. Ini juga bagian dari nama grup sumber daya yang Anda buat di Azure.

Sebelum dapat menjalankan aplikasi secara lokal, Anda harus membuat sumber daya di Azure.

Buat sumber daya Azure

Proyek ini dikonfigurasi untuk menggunakan azd provision perintah untuk membuat aplikasi fungsi dalam paket Konsumsi Flex, bersama dengan sumber daya Azure lain yang diperlukan yang mengikuti praktik terbaik saat ini.

  1. Di Visual Studio Code, tekan F1 untuk membuka palet perintah, cari dan jalankan perintah Azure Developer CLI (azd): Sign In with Azure Developer CLI, lalu masuk menggunakan akun Azure Anda.

  2. Tekan F1 untuk membuka palet perintah, cari dan jalankan perintah Azure Developer CLI (azd): Provision Azure resources (provision) untuk membuat sumber daya Azure yang diperlukan.

  3. Ketika diminta di jendela Terminal, berikan parameter penyebaran yang diperlukan ini:

    Cepat Description
    Pilih Langganan Azure yang akan digunakan Pilih langganan di mana Anda ingin membuat sumber daya.
    parameter lokasi penyebaran Wilayah Azure untuk membuat grup sumber daya yang berisi sumber daya Azure baru. Hanya wilayah yang saat ini mendukung paket Konsumsi Flex yang ditampilkan.
    Parameter penyebaran vnetEnabled Sementara templat mendukung pembuatan sumber daya di dalam jaringan virtual, untuk menyederhanakan penyebaran dan pengujian, pilih False.

Perintah azd provision menggunakan respons Anda terhadap prompt ini bersama dengan file konfigurasi Bicep untuk membuat dan mengonfigurasi sumber daya Azure yang diperlukan, mengikuti praktik terbaru terbaik.

  • Paket Konsumsi Flex dan aplikasi fungsi
  • Azure SQL Database (nama default: ToDo)
  • Azure Storage (wajib) dan Application Insights (disarankan)
  • Mengakses kebijakan dan peran untuk akun Anda
  • Koneksi layanan ke layanan menggunakan identitas terkelola (bukan string koneksi tersimpan)

Hook pascaprovisi juga menghasilkan file local.settings.json , yang diperlukan untuk berjalan secara lokal. File ini berisi pengaturan yang diperlukan untuk menyambungkan ke database Anda di Azure.

Meninjau kode (opsional)

Sampel mendefinisikan dua fungsi:

Nama fungsi File kode Jenis pemicu Description
httptrigger-sql-output sql_output_http_trigger.cs Pemicu HTTP Menerima payload JSON yang diformat dengan benar dan menggunakan pengikatan output SQL untuk menyisipkan objek sebagai baris dalam ToDo tabel.
ToDoTrigger sql_trigger.cs Pemicu SQL Mendengarkan perubahan tingkat baris pada tabel ToDo dan mengembalikan objek yang mewakili baris yang diubah.

ToDoItem Jenis didefinisikan dalam ToDoItem.cs.

Nama fungsi File kode Jenis pemicu Description
http_trigger_sql_output function_app.py Pemicu HTTP Menerima payload JSON yang diformat dengan benar dan menggunakan pengikatan output SQL untuk menyisipkan objek sebagai baris dalam ToDo tabel.
httptrigger-sql-output sql_trigger_todo Pemicu SQL Mendengarkan perubahan tingkat baris pada tabel ToDo dan mengembalikan objek yang mewakili baris yang diubah.

Jenis ToDoItem didefinisikan dalam todo_item.py.

Nama fungsi File kode Jenis pemicu Description
httpTriggerSqlOutput sql_output_http_trigger.ts Pemicu HTTP Menerima payload JSON yang diformat dengan benar dan menggunakan pengikatan output SQL untuk menyisipkan objek sebagai baris dalam ToDo tabel.
sqlTriggerToDo sql_trigger.ts Pemicu SQL Mendengarkan perubahan tingkat baris pada tabel ToDo dan mengembalikan objek yang mewakili baris yang diubah.

Jenis ToDoItem didefinisikan dalam ToDoItem.ts.

Kedua fungsi menggunakan variabel lingkungan tingkat AZURE_SQL_CONNECTION_STRING_KEY_* aplikasi yang menentukan koneksi berbasis identitas ke instans Azure SQL Database menggunakan autentikasi ID Microsoft Entra. Variabel lingkungan ini dibuat untuk Anda baik di Azure (pengaturan aplikasi fungsi) dan secara lokal (local.settings.json) selama azd provision operasi.

Menyambungkan ke database SQL

Anda dapat menggunakan ekstensi SQL Server (mssql) untuk Visual Studio Code untuk menyambungkan ke database baru. Ekstensi ini membantu Anda membuat pembaruan dalam ToDo tabel untuk menjalankan fungsi pemicu SQL.

  1. Tekan F1 dan di palet perintah cari dan jalankan perintah MS SQL: Add Connection.

  2. Dalam dialog Koneksi, ubah Jenis input untuk Menelusuri Azure lalu atur opsi yang tersisa ini:

    Option Pilih Description
    Server Instans SQL Server Anda Secara default, semua server yang dapat diakses oleh akun Azure Anda ditampilkan. Gunakan Langganan, Grup sumber daya, dan Lokasi untuk membantu memfilter daftar server.
    Database ToDo Database yang dibuat dalam proses provisioning sistem.
    Jenis autentikasi Microsoft Entra ID Jika Anda belum masuk, pilih Masuk dan masuk ke akun Azure Anda.
    ID Penyewa Penyewa akun tertentu. Jika akun Anda memiliki lebih dari satu penyewa, pilih penyewa yang benar untuk langganan Anda.
  3. Pilih Sambungkan untuk menyambungkan ke database Anda. Koneksi menggunakan akun pengguna lokal Anda, yang diberikan izin admin di server hosting dan dipetakan ke dbo dalam database.

  4. Dalam tampilan SQL Server , temukan dan perluas Koneksi lalu server baru Anda di penjelajah SQL Server. Perluas Tabel dan verifikasi bahwa ToDo tabel ada. Jika tidak ada, Anda mungkin perlu menjalankan azd provision lagi dan memeriksa kesalahan.

Jalankan fungsi secara lokal

Visual Studio Code terintegrasi dengan alat Azure Functions Core untuk memungkinkan Anda menjalankan proyek ini di komputer pengembangan lokal anda sebelum menerbitkan ke aplikasi fungsi baru di Azure.

  1. Tekan F1 dan di palet perintah cari dan jalankan perintah Azurite: Start.

  2. Untuk memulai fungsi secara lokal, tekan F5 atau ikon Jalankan dan Debug di bilah Aktivitas sisi kiri.

    Panel Terminal menampilkan output dari Core Tools. Aplikasi Anda dimulai di panel Terminal , dan Anda dapat melihat nama fungsi yang berjalan secara lokal.

Dengan aplikasi berjalan, Anda dapat memverifikasi dan men-debug kedua pemicu fungsi.

Untuk memverifikasi fungsi pemicu HTTP yang menulis ke pengikatan output SQL:

  1. Salin objek JSON ini, yang juga dapat Anda temukan dalam test.http file proyek:

    {
      "id": "11111111-1111-1111-1111-111111111111",
      "order": 1,
      "title": "Test Todo Item",
      "url": "https://example.com",
      "completed": false
    }
    

    Data ini mewakili baris yang Anda sisipkan di database SQL saat Anda memanggil titik akhir HTTP. Pengikatan output menerjemahkan objek data ke dalam operasi di dalam INSERT database.

  2. Dengan aplikasi berjalan, dalam tampilan Azure di bawah Ruang Kerja perluas Fungsi proyek> lokal.

  3. Pilih kanan fungsi HTTP Anda (atau Ctrl+klik pada macOS), pilih Jalankan fungsi sekarang, tempelkan data JSON yang disalin, dan tekan Enter.

    Fungsi ini menangani permintaan HTTP dan menulis item ke database SQL yang tersambung dan mengembalikan objek yang dibuat.

  4. Kembali ke penjelajah SQL Server, klik kanan pada tabel ToDo (atau Ctrl+klik di macOS), dan pilih Pilih 1000 Teratas. Saat kueri dijalankan, ia mengembalikan baris yang disisipkan atau diperbarui.

  5. Ulangi Langkah 3 dan mengirim ulang objek data yang sama dengan ID yang sama. Kali ini, pengikatan output melakukan operasi UPDATE alih-alih INSERT dan memodifikasi baris yang ada dalam database.

Setelah selesai, ketik Ctrl+C di terminal untuk menghentikan proses Core Tools.

Sebarkan ke Azure

Anda dapat menjalankan azd deploy perintah dari Visual Studio Code untuk menyebarkan kode proyek ke sumber daya yang sudah disediakan di Azure.

  1. Tekan F1 untuk membuka palet perintah, cari dan jalankan perintah Azure Developer CLI (azd): Deploy to Azure (deploy).

    Perintah azd deploy mengemas dan menyebarkan kode Anda ke kontainer penyebaran. Aplikasi kemudian dimulai dan berjalan dalam paket yang disebarkan.

  2. Setelah perintah berhasil diselesaikan, aplikasi Anda berjalan di Azure. Catat nilainya Endpoint , yang merupakan URL aplikasi fungsi Anda yang berjalan di Azure.

Menggunakan fungsi pada Azure

  1. Di Visual Studio Code, tekan F1 dan di palet perintah cari dan jalankan perintah Azure: Open in portal, pilih Function app, dan pilih aplikasi baru Anda. Masuk dengan akun Azure Anda, jika perlu.

  2. Pilih Aliran log di panel kiri, yang tersambung ke log Application Insights untuk aplikasi Anda.

  3. Kembali ke Visual Studio Code untuk menjalankan kedua fungsi di Azure.

  1. Tekan F1 untuk membuka palet perintah, cari dan jalankan perintah Azure Functions: Execute Function Now....

  2. Cari dan pilih aplikasi fungsi jarak jauh Anda dari daftar, lalu pilih fungsi pemicu HTTP.

  3. Seperti sebelumnya, tempelkan data objek JSON Anda di Masukkan isi payload dan tekan Enter.

    {
      "id": "11111111-1111-1111-1111-111111111111",
      "order": 1,
      "title": "Test Todo Item",
      "url": "https://example.com",
      "completed": false
    }
    

    Untuk melakukan INSERT sebagai pengganti UPDATE, gantilah id dengan nilai GUID yang baru.

  4. Kembali ke portal dan lihat output eksekusi di jendela log.

Membersihkan sumber daya

Setelah selesai bekerja dengan aplikasi fungsi dan sumber daya terkait, Anda dapat menggunakan perintah ini untuk menghapus aplikasi fungsi dan sumber daya terkait dari Azure dan menghindari timbulnya biaya lebih lanjut:

azd down --no-prompt

Nota

Opsi ini --no-prompt menginstruksikan azd untuk menghapus grup sumber daya Anda tanpa konfirmasi dari Anda.

Perintah ini tidak memengaruhi proyek kode lokal Anda.