Tutorial: Mengindeks dan memperkaya blob terenkripsi untuk pencarian teks lengkap di Azure AI Search
Tutorial ini menunjukkan kepada Anda cara menggunakan Azure AI Search untuk mengindeks dokumen yang sebelumnya telah dienkripsi dengan kunci yang dikelola pelanggan di Azure Blob Storage.
Biasanya, pengindeks tidak dapat mengekstrak konten dari blob yang telah dienkripsi menggunakan enkripsi sisi klien pustaka klien Azure Blob Storage karena pengindeks tidak memiliki akses ke kunci enkripsi yang dikelola pelanggan di Azure Key Vault. Namun, dengan memanfaatkan keterampilan kustom DecryptBlobFile, diikuti oleh keterampilan Ekstraksi Dokumen, Anda dapat memberikan akses terkontrol ke kunci untuk mendekripsi file dan kemudian mengekstrak konten darinya. Ini membuka kemampuan untuk mengindeks dan memperkaya dokumen-dokumen ini tanpa membahayakan status enkripsi dokumen tersimpan Anda.
Dimulai dengan seluruh dokumen yang dienkripsi sebelumnya (teks yang tidak terstruktur) seperti PDF, HTML, DOCX, dan PPTX di Azure Blob Storage, tutorial ini menggunakan klien REST dan REST API Pencarian untuk melakukan tugas-tugas berikut:
- Tentukan alur yang mendekripsi dokumen dan mengekstrak teks darinya.
- Tentukan indeks untuk menyimpan output.
- Jalankan alur untuk membuat dan memuat indeks.
- Menjelajahi hasil menggunakan pencarian teks lengkap dan beragam sintaksis kueri.
Jika Anda belum punya langganan Azure, buka akun gratis sebelum memulai.
Prasyarat
Pencarian Azure AI di tingkat atau wilayah apa pun.
Azure Storage, Performa Standar (tujuan umum v2).
Blob dienkripsi dengan kunci yang dikelola pelanggan. Lihat Tutorial: Mengenkripsi dan mendekripsi blob menggunakan Azure Key Vault jika Anda perlu membuat data sampel.
Azure Key Vault dalam langganan yang sama dengan Azure AI Search. Brankas kunci harus mengaktifkan penghapusan sementara dan perlindungan penghapusan menyeluruh.
Penyebaran keterampilan kustom membuat aplikasi Azure Function dan akun Azure Storage. Karena sumber daya ini dibuat untuk Anda, sumber daya tersebut tidak terdaftar sebagai prasyarat. Setelah selesai dengan tutorial ini, ingatlah untuk membersihkan sumber daya sehingga Anda tidak ditagih untuk layanan yang tidak Anda gunakan.
Catatan
Set keterampilan sering memerlukan pelampiran sumber daya multi-layanan Azure AI. Seperti yang ditulis, set keterampilan ini tidak memiliki dependensi pada layanan Azure AI dan dengan demikian tidak diperlukan kunci. Jika nanti Anda menambahkan pengayaan yang memanggil keterampilan bawaan, ingatlah untuk memperbarui skillset Anda dengan sesuai.
Menyebarkan keterampilan kustom
Contoh ini menggunakan sampel proyek DecryptBlobFile dari repositori GitHub Azure Search Power Skills. Di bagian ini, Anda menyebarkan keterampilan ke Azure Function sehingga dapat digunakan dalam set keterampilan. Skrip penyebaran bawaan membuat sumber daya Azure Function dengan awalan psdbf-function-app- dan memuat keterampilan. Anda diminta untuk menyediakan langganan dan grup sumber daya. Pastikan untuk memilih langganan yang sama tempat instans Azure Key Vault berada.
Secara operasional, keterampilan DecryptBlobFile mengambil URL dan token SAS untuk setiap blob sebagai input, dan menghasilkan file yang diunduh dan didekripsi menggunakan kontrak referensi file yang diharapkan Azure AI Search. Ingat bahwa DecryptBlobFile membutuhkan kunci enkripsi untuk melakukan dekripsi. Sebagai bagian dari penyiapan, Anda juga membuat kebijakan akses yang memberikan akses fungsi DecryptBlobFile ke kunci enkripsi di Azure Key Vault.
Klik tombol Sebarkan ke Azure yang ditemukan di halaman arahan DecryptBlobFile, yang akan membuka templat Resource Manager yang disediakan di dalam portal Azure.
Pilih langganan yang sama tempat instans Azure Key Vault Anda ada (tutorial ini tidak akan berfungsi jika Anda memilih langganan yang berbeda).
Pilih grup sumber daya yang sudah ada atau buat yang baru. Grup sumber daya khusus membuat pembersihan lebih mudah nanti.
Pilih Tinjau + buat, pastikan Anda menyetujui persyaratan, lalu pilih Buat untuk menyebarkan Azure Functions.
Tunggu hingga penyebaran selesai.
Anda harus memiliki aplikasi Azure Function yang berisi logika dekripsi dan sumber daya Azure Storage yang akan menyimpan data aplikasi. Dalam beberapa langkah berikutnya, Anda akan memberikan izin aplikasi untuk mengakses brankas kunci dan mengumpulkan informasi yang Anda perlukan untuk panggilan REST.
Memberikan izin di Azure Key Vault
Navigasikan ke layanan Azure Key Vault Anda di portal Azure. Buat kebijakan akses di Azure Key Vault yang memberikan akses utama ke keterampilan kustom.
Di panel navigasi kiri, pilih Kebijakan akses, lalu pilih + Buat untuk memulai wizard Buat kebijakan akses.
Pada halaman Izin di bawah Konfigurasikan dari templat, pilih Azure Data Lake Storage atau Azure Storage.
Pilih Selanjutnya.
Pada halaman Utama , pilih instans Azure Function yang Anda sebarkan. Anda dapat mencarinya menggunakan awalan sumber daya yang digunakan untuk membuatnya di langkah 2, yang memiliki nilai awalan default psdbf-function-app.
Pilih Selanjutnya.
Pada Tinjau + buat, pilih Buat.
Mengumpulkan informasi aplikasi
Navigasikan ke fungsi psdbf-function-app di portal Azure, dan catat properti berikut yang Anda perlukan untuk panggilan REST:
Dapatkan URL fungsi, yang dapat ditemukan di bawah Esensial di halaman utama untuk fungsi tersebut.
Dapatkan kode kunci host, yang dapat ditemukan dengan menavigasi ke Kunci aplikasi, mengklik untuk menampilkan kunci default , dan menyalin nilai.
Mendapatkan kunci api admin dan URL untuk Pencarian Azure AI
Masuk ke portal Azure, dan di halaman Gambaran Umum layanan pencarian Anda, dapatkan nama layanan pencarian Anda. Anda dapat mengonfirmasi nama layanan Anda dengan meninjau URL titik akhir. Jika URL titik akhir Anda adalah
https://mydemo.search.windows.net
, nama layanan Anda akan menjadimydemo
.Di Pengaturan>Kunci, dapatkan kunci admin untuk mendapatkan hak penuh atas layanan. Ada dua kunci admin yang dapat dipertukarkan, kunci disediakan untuk kelangsungan bisnis jika Anda perlu menimpa salah satunya. Anda dapat menggunakan kunci utama atau sekunder pada permintaan untuk menambahkan, memodifikasi, dan menghapus objek.
Semua permintaan memerlukan api-key di header setiap permintaan yang dikirim ke layanan Anda. Kunci yang valid menetapkan kepercayaan, berdasarkan permintaan, antara aplikasi yang mengirim permintaan dan layanan yang menanganinya.
Menyiapkan klien REST
Buat variabel untuk titik akhir dan kunci:
Variabel | Lokasi untuk mendapatkannya |
---|---|
admin-key |
Pada halaman Kunci layanan Pencarian Azure AI. |
search-service-name |
Nama layanan Pencarian Azure AI. URL-nya adalah https://{{search-service-name}}.search.windows.net . |
storage-connection-string |
Di akun penyimpanan, di tab Kunci Akses, pilih key1>String koneksi. |
storage-container-name |
Nama kontainer blob yang memiliki file terenkripsi untuk diindeks. |
function-uri |
Di Azure Functions di bawah Esensial di halaman utama. |
function-code |
Di Azure Functions, dengan menavigasi ke Kunci aplikasi, mengklik untuk menampilkan kunci default, dan menyalin nilai. |
api-version |
Biarkan sebagai 2020-06-30. |
datasource-name |
Biarkan sebagai encrypted-blobs-ds. |
index-name |
Biarkan sebagai encrypted-blobs-idx. |
skillset-name |
Biarkan sebagai encrypted-blobs-ss. |
indexer-name |
Biarkan sebagai encrypted-blobs-ixr. |
Meninjau dan menjalankan setiap permintaan
Gunakan permintaan HTTP untuk membuat objek alur pengayaan:
Permintaan PUT untuk membuat indeks: Indeks pencarian ini menyimpan data yang digunakan dan dikembalikan oleh Azure AI Search.
Permintaan POST untuk membuat sumber data: Sumber data ini menentukan koneksi ke akun penyimpanan Anda yang berisi file blob terenkripsi.
Permintaan PUT untuk membuat set keterampilan: Set keterampilan menentukan definisi keterampilan kustom untuk Azure Functions yang akan mendekripsi data file blob, dan DocumentExtractionSkill untuk mengekstrak teks dari setiap dokumen setelah didekripsi.
Permintaan PUT untuk membuat pengindeks: Menjalankan pengindeks mengambil blob, menerapkan set keterampilan, dan mengindeks dan menyimpan hasilnya. Anda harus menjalankan permintaan terakhir. Keterampilan kustom dalam set keterampilan memanggil logika dekripsi.
Memantau pengindeksan
Pengindeksan dan pengayaan dimulai segera setelah Anda mengirimkan permintaan Create Indexer. Bergantung pada berapa banyak dokumen di akun penyimpanan Anda, pengindeksan dapat memakan waktu cukup lama. Untuk mengetahui apakah pengindeks masih berjalan, kirim permintaan Dapatkan Status Pengindeks dan tinjau respons untuk mempelajari apakah pengindeks sedang berjalan, atau untuk melihat informasi kesalahan dan peringatan.
Jika Anda menggunakan tingkat Gratis, pesan berikut diharapkan: "Could not extract content or metadata from your document. Truncated extracted text to '32768' characters"
. Pesan ini muncul karena pengindeksan blob pada tingkat Gratis memiliki batas 32K pada ekstraksi karakter. Anda tidak akan melihat pesan ini untuk himpunan data ini pada tingkat yang lebih tinggi.
Mencari konten Anda
Setelah eksekusi pengindeks selesai, Anda dapat menjalankan beberapa kueri untuk memverifikasi bahwa data telah berhasil didekripsi dan diindeks. Navigasikan ke layanan Pencarian Azure AI Anda di portal Azure, dan gunakan Penjelajah Pencarian untuk menjalankan kueri melalui data terindeks.
Membersihkan sumber daya
Saat Anda bekerja di langganan Anda sendiri, di akhir proyek, sebaiknya hapus sumber daya yang tidak lagi Anda butuhkan. Sumber daya yang dibiarkan berjalan dapat menghabiskan uang Anda. Anda dapat menghapus sumber daya satu per satu atau menghapus grup sumber daya untuk menghapus seluruh rangkaian sumber daya.
Anda dapat menemukan dan mengelola sumber daya di portal Azure, menggunakan tautan Semua sumber daya atau Grup sumber daya di panel navigasi kiri.
Langkah berikutnya
Sekarang setelah Anda berhasil mengindeks file terenkripsi, Anda dapat melakukan iterasi pada alur ini dengan menambahkan lebih banyak keterampilan. Ini akan memungkinkan Anda memperkaya dan mendapatkan wawasan tambahan ke data Anda.
Jika Anda bekerja dengan data terenkripsi doubly, Anda mungkin ingin menyelidiki fitur enkripsi indeks yang tersedia di Azure AI Search. Meskipun pengindeks membutuhkan data yang didekripsi untuk tujuan pengindeksan, setelah indeks ada, pengindeks dapat dienkripsi dalam indeks pencarian menggunakan kunci yang dikelola pelanggan. Ini akan memastikan bahwa data Anda selalu dienkripsi saat tidak aktif. Untuk informasi selengkapnya, lihat Mengonfigurasi kunci yang dikelola pelanggan untuk enkripsi data di Azure AI Search.