Mengonfigurasi penyimpanan dan database

Selesai

Sering kali, bagian dari proses penyebaran Anda mengharuskan Anda tersambung ke database atau layanan penyimpanan. Ini mungkin diperlukan untuk menerapkan skema database, untuk menambahkan beberapa data referensi ke tabel database, atau untuk mengunggah beberapa blob. Di unit ini, Anda akan mempelajari tentang cara memperluas alur untuk bekerja dengan layanan data dan penyimpanan.

Mengonfigurasi database Anda dari alur

Banyak database memiliki skema, yang mewakili struktur data yang ada dalam database. Ini sering kali merupakan praktik yang baik untuk menerapkan skema ke database Anda dari alur penyebaran Anda. Ini membantu memastikan bahwa semua kebutuhan solusi Anda digunakan bersama. Ini juga memastikan bahwa, jika ada masalah saat skema diterapkan, alur Anda akan menunjukkan kesalahan, sehingga Anda dapat dengan cepat memperbaiki masalah dan memindahkan.

Saat bekerja dengan Azure SQL, Anda perlu menerapkan skema database dengan menghubungkan ke server database dan mengeksekusi perintah dengan menggunakan skrip SQL. Ini adalah operasi data plane. Alur Anda perlu mengautentikasi ke server database, kemudian mengeksekusi skrip. Azure Pipelines menyediakan tugas SqlAzureDacpacDeployment yang dapat tersambung ke server database Azure SQL dan menjalankan perintah.

Beberapa layanan data dan penyimpanan lainnya tidak perlu dikonfigurasi dengan menggunakan API data plane. Misalnya, saat bekerja dengan Azure Cosmos DB, Anda menyimpan data dalam kontainer. Anda dapat mengonfigurasi kontainer dengan menggunakan sarana kontrol, langsung dari dalam file Bicep Anda. Demikian pula, Anda dapat menyebarkan dan mengelola sebagian besar aspek kontainer blob Azure Storage dalam Bicep juga. Dalam latihan berikutnya, Anda akan melihat contoh cara membuat kontainer blob dari Bicep.

Menambahkan data

Banyak solusi memerlukan data referensi untuk ditambahkan ke database atau akun penyimpanan mereka sebelum mereka bekerja. Alur bisa menjadi tempat yang baik untuk menambahkan data ini. Ini berarti bahwa, setelah eksekusi alur, lingkungan Anda sepenuhnya dikonfigurasi dan siap digunakan.

Ini juga membantu untuk memiliki data sampel dalam database Anda, terutama untuk lingkungan non-produksi. Ini membantu penguji dan orang lain yang menggunakan lingkungan tersebut dapat menguji solusi Anda segera. Data ini mungkin termasuk produk sampel serta hal-hal seperti akun pengguna palsu. Umumnya, Anda tidak ingin menambahkan data ini ke lingkungan produksi.

Pendekatan yang Anda gunakan untuk menambahkan data tergantung pada layanan yang digunakan. Contohnya:

  • Untuk menambahkan data ke database Azure SQL, Anda perlu mengeksekusi skrip, seperti mengonfigurasi skema.
  • Saat perlu memasukkan data ke Azure Cosmos DB, Anda perlu mengakses API data plane-nya, yang mungkin mengharuskan Anda menulis beberapa kode skrip khusus.
  • Untuk mengunggah blob ke kontainer blob Azure Storage, Anda dapat menggunakan berbagai alat dari skrip alur, termasuk aplikasi baris perintah AzCopy, Azure PowerShell, atau Azure CLI. Masing-masing alat ini memahami cara mengautentikasi untuk Azure Storage atas nama Anda, dan cara tersambugn ke API data plane untuk mengunggah blob.

Idempotensi

Salah satu karakteristik alur penyebaran dan infrastruktur sebagai kode adalah bahwa Anda harus dapat memindahkan berulang kali tanpa efek samping yang merugikan. Misalnya, saat Anda memindahkan file Bicep yang telah disebarkan, Azure Resource Manager membandingkan file yang Anda kirimkan dengan status sumber daya Azure Anda yang ada, dan jika tidak ada perubahan, tidak ada yang dilakukan. Kemampuan untuk menjalankan kembali operasi berulang kali disebut idempotensi. Ini adalah praktik yang baik untuk memastikan skrip Anda dan langkah alur lainnya idempoten.

Idempotensi sangat penting saat Anda berinteraksi dengan layanan data, karena mempertahankan keadaan. Bayangkan Anda memasukkan pengguna sampel ke dalam tabel database dari alur Anda. Jika Anda tidak berhati-hati, setiap kali Anda menjalankan alur, pengguna sampel baru akan dibuat. Ini mungkin bukan yang Anda inginkan.

Saat menerapkan skema ke database Azure SQL, Anda dapat menggunakan paket data, juga disebut file DACPAC, untuk menyebarkan skema Anda. Alur Anda membuat file DACPAC dari kode sumber dan membuat artefak alur, seperti dengan aplikasi. Kemudian, tahap penyebaran di alur Anda menerbitkan file DACPAC ke database:

Diagram yang menunjukkan penerbitan alur dan kemudian mengacu pada artefak bernama 'database'.

Saat file DACPAC digunakan, file berperilaku dengan cara yang idempoten dengan membandingkan status target database Anda dengan status yang ditentukan dalam paket. Dalam banyak situasi, ini berarti Anda tidak perlu menulis skrip yang mengikuti prinsip idempotensi, karena alat menanganinya untuk Anda. Beberapa alat untuk Azure Cosmos DB dan Azure Storage juga berperilaku dengan benar.

Tetapi saat Anda membuat data sampel dalam database Azure SQL, atau layanan penyimpanan lain yang tidak otomatis bekerja dengan cara yang idempoten, ini adalah praktik yang baik untuk menulis skrip Anda sehingga membuat data hanya jika belum ada.

Penting juga untuk mempertimbangkan apakah Anda mungkin perlu memutar kembali penyebaran, seperti dengan menjalankan kembali versi alur penyebaran yang lebih lama. Putar kembali perubahan pada data Anda dapat menjadi rumit, jadi pertimbangkan dengan hati-hati cara solusi Anda akan bekerja jika ini adalah sesuatu yang perlu Anda izinkan.

Network security

Terkadang, Anda mungkin menerapkan pembatasan jaringan ke beberapa sumber daya Azure. Pembatasan ini dapat menegakkan aturan tentang permintaan yang dibuat ke data plane sumber daya, seperti:

  • Server database ini hanya dapat diakses dari daftar alamat IP tertentu.
  • Akun penyimpanan ini hanya dapat diakses dari sumber daya yang digunakan dalam jaringan virtual tertentu.

Pembatasan jaringan sangat umum dengan database, karena mungkin tampak seperti tidak memerlukan apa pun di internet tersambung ke server database.

Namun, pembatasan jaringan juga dapat menyulitkan jaringan alur penyebaran Anda untuk bekerja dengan data plane sumber daya Anda juga. Saat Anda menggunakan agen alur yang dihosting Microsoft, alamat IP-nya tidak dapat dengan mudah diketahui sebelumnya, dan mungkin akan diberikan dari kumpulan besar alamat IP. Selain itu, agen alur yang dihosting Microsoft tidak dapat dihubungkan ke jaringan virtual Anda sendiri.

Beberapa tugas Azure Pipelines yang membantu Anda melakukan operasi data plane dapat mengatasi masalah ini. Ini mencakup tugas SqlAzureDacpacDeployment:

Diagram yang menggambarkan proses pembaruan firewall.

Saat Anda menggunakan tugas SqlAzureDacpacDeployment untuk bekerja dengan server atau database logis Azure SQL, tugas menggunakan prinsip layanan alur Anda untuk tersambung ke sarana kontrol untuk server logis Azure SQL. Nama kontainer memperbarui firewall agar agen alur dapat mengakses server dari alamat IP nama kontainer . Kemudian, nama kontainer dapat berhasil mengirimkan file atau skrip paket aplikasi tahap data untuk dijalankan. Tugas kemudian otomatis menghapus aturan firewall saat selesai.

Dalam situasi lain, tidak mungkin untuk membuat pengecualian seperti ini. Dalam keadaan ini, pertimbangkan untuk menggunakan agen alur yang dihosting sendiri, yang berjalan pada mesin virtual atau sumber daya komputasi lainnya yang Anda kendalikan. Kemudian, Anda dapat mengonfigurasi agen ini sesuka Anda. Ini dapat menggunakan alamat IP yang diketahui, atau dapat disambungkan ke jaringan virtual Anda sendiri. Kami tidak membahas agen yang dihosting mandiri dalam modul ini, tetapi kami menyediakan tautan ke informasi selengkapnya di halaman Ringkasan akhir modul.

Alur penyebaran Anda

Pada latihan berikutnya, Anda akan memperbarui alur penyebaran untuk menambahkan pekerjaan baru untuk membangun komponen database situs web Anda, menyebarkan database, dan menambahkan data seed:

Diagram yang menunjukkan alur yang direvisi, termasuk langkah-langkah pembuatan database baru, langkah penyebaran database, dan langkah seeding data di lingkungan pengujian.