Tutorial: Mengunggah dan menganalisis file dengan Azure Functions dan Azure Blob Storage
Dalam tutorial ini, Anda akan mempelajari cara mengunggah gambar ke Azure Blob Storage dan memprosesnya menggunakan Azure Functions dan Computer Vision. Anda juga akan mempelajari cara menerapkan pemicu dan pengikatan Azure Function sebagai bagian dari proses ini. Bersama-sama, layanan ini akan menganalisis gambar yang diunggah yang berisi teks, mengekstrak teks darinya, lalu menyimpan teks dalam baris database untuk dianalisis nanti atau tujuan lainnya.
Azure Blob Storage adalah solusi penyimpanan objek berskala besar Microsoft untuk cloud. Blob Storage dirancang untuk menyimpan gambar dan dokumen, streaming file media, mengelola data cadangan dan arsip, dan banyak lagi. Anda dapat membaca selengkapnya tentang Blob Storage di halaman gambaran umum.
Azure Functions adalah solusi komputer tanpa server yang memungkinkan Anda menulis dan menjalankan blok kecil kode sebagai fungsi berbasis peristiwa yang sangat scalable, tanpa server. Anda dapat membaca selengkapnya tentang Azure Functions di halaman gambaran umum.
Dalam tutorial ini, Anda akan belajar cara:
- Mengunggah gambar dan file ke Blob Storage
- Menggunakan pemicu Azure Function untuk memproses data yang diunggah ke Blob Storage
- Menggunakan layanan Azure AI untuk menganalisis gambar
- Menulis data ke Table Storage menggunakan pengikatan output Azure Function
Prasyarat
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Visual Studio 2022 terpasang.
Membuat akun penyimpanan dan kontainer
Langkah pertama adalah membuat akun penyimpanan yang akan menyimpan data blob yang diunggah, yang akan menjadi gambar berisi teks dalam skenario ini. Akun penyimpanan menawarkan beberapa layanan yang berbeda, tetapi tutorial ini menggunakan Blob Storage dan Table Storage.
Masuk ke portal Azure.
Di bilah pencarian di bagian atas portal, cari Storage dan pilih hasil berlabel akun Storage.
Pada halaman Akun Storage, pilih + Buat di kiri atas.
Pada halaman Buat akun penyimpanan, masukkan nilai berikut ini:
- Langganan: Pilih langganan yang Anda inginkan.
- Grup Sumber Daya: Pilih Buat baru dan masukkan nama
msdocs-storage-function
, lalu pilih OK. - Nama akun Storage: Masukkan nilai
msdocsstoragefunction
. Nama akun Storage harus unik di seluruh Azure, mungkin Anda perlu menambahkan angka setelah namanya, sepertimsdocsstoragefunction123
. - Wilayah: Pilih wilayah terdekat.
- Performa: Pilih Standar.
- Redundansi: Pilih nilai default.
Pilih Tinjau + Buat di bagian bawah dan Azure akan memvalidasi informasi yang Anda masukkan. Setelah pengaturan divalidasi, pilih Buat dan Azure akan mulai memprovisikan akun penyimpanan, mungkin memakan waktu sejenak.
Membuat kontainer
Setelah akun penyimpanan diprovisikan, pilih Buka sumber daya. Langkah selanjutnya adalah membuat kontainer penyimpanan di dalam akun tersebut untuk menyimpan gambar yang diunggah untuk dianalisis.
Pada panel navigasi, pilih Kontainer.
Pada halaman Kontainer, pilih + Kontainer di bagian atas. Di panel slide keluar, masukkan Nama imageanalysis, dan pastikan tingkat akses publik diatur ke Blob (akses baca anonim hanya untuk blob). Lalu pilih Buat.
Anda akan melihat kontainer baru muncul dalam daftar kontainer.
Mengambil string koneksi
Langkah terakhir adalah mengambil string koneksi untuk akun penyimpanan.
Di panel navigasi kiri, pilih Tombol Akses.
Di halaman Kunci akses, pilih Tampilkan kunci. Salin nilai String Koneksi di bawah bagian key1 dan tempelkan nilai ini di tempat lain untuk digunakan nanti. Anda juga perlu mencatat nama akun penyimpanan
msdocsstoragefunction
untuk digunakan nanti.
Nilai-nilai ini akan diperlukan ketika kita harus menghubungkan Azure Function ke akun penyimpanan ini.
Membuat layanan Vision Computer
Selanjutnya, buat akun layanan Computer Vision yang akan memproses file yang kita unggah. Computer Vision adalah bagian dari layanan Azure AI dan menawarkan berbagai fitur untuk mengekstrak data dari gambar. Anda dapat mempelajari selengkapnya tentang Computer Vision di halaman gambaran umum.
Di bilah pencarian di bagian atas portal, cari Computer dan pilih hasil berlabel Computer vision.
Pada halaman Computer vision, pilih + Buat.
Pada halaman Buat Computer Vision, masukkan nilai berikut ini:
- Langganan: Pilih langganan yang Anda inginkan.
- Grup Sumber Daya: Gunakan grup sumber daya
msdocs-storage-function
yang Anda buat sebelumnya. - Wilayah: Pilih wilayah terdekat.
- Nama: Masukkan nama
msdocscomputervision
. - Tingkat Harga: Pilih Gratis jika tersedia, jika tidak, pilih Standar S1.
- Centang kotak Pemberitahuan AI yang Bertanggung Jawab jika Anda menyetujui persyaratan
Pilih Tinjau + Buat di bagian bawah. Azure akan membutuhkan waktu sejenak untuk memvalidasi informasi yang Anda masukkan. Setelah pengaturan divalidasi, pilih Buat dan Azure akan mulai memprovisikan layanan Computer Vision, mungkin memakan waktu sejenak.
Setelah operasi selesai, pilih Buka Sumber Daya.
Mengambil kunci
Selanjutnya, kita perlu menemukan kunci rahasia dan URL titik akhir untuk digunakan layanan Computer Vision di aplikasi Azure Function.
Pada halaman gambaran umum Computer Vision, pilih Kunci dan Titik Akhir.
Pada halaman Kunci dan Titik Akhir, salin nilai Kunci 1 dan nilai Titik Akhir, lalu tempelkan di tempat lain untuk digunakan nanti.
Mengunduh dan mengonfigurasi proyek sampel
Kode untuk Azure Function yang digunakan dalam tutorial ini dapat ditemukan di repositori GitHub ini. Anda juga dapat mengkloning proyek menggunakan perintah di bawah ini.
git clone https://github.com/Azure-Samples/msdocs-storage-bind-function-service.git \
cd msdocs-storage-bind-function-service/dotnet
Kode proyek sampel tersebut menyelesaikan tugas-tugas berikut:
- Mengambil variabel lingkungan untuk menyambungkan ke akun penyimpanan dan layanan Computer Vision
- Menerima file yang diunggah sebagai parameter blob
- Menganalisis blob menggunakan layanan Computer Vision
- Mengirim teks gambar yang dianalisis ke baris tabel baru menggunakan pengikatan output
Setelah Anda mengunduh dan membuka proyek, ada beberapa konsep penting yang perlu dipahami dalam metode utama Run
yang ditunjukkan di bawah ini. Azure Function menggunakan pengikatan Pemicu dan Output, yang diterapkan menggunakan atribut pada tanda tangan metode Run
.
Atribut Table
menggunakan dua parameter. Parameter pertama menentukan nama tabel untuk menulis nilai teks gambar yang diurai, yang dimunculkan oleh fungsi. Parameter kedua Connection
menarik string koneksi Table Storage dari variabel lingkungan sehingga Azure Function memiliki akses ke dalamnya.
Atribut BlobTrigger
ini digunakan untuk mengikat fungsi ke peristiwa unggahan di Blob Storage, dan memasok blob yang diunggah ke fungsi Run
. Pemicu blob memiliki dua parameter sendiri - satu untuk nama kontainer blob yang memantau unggahan, dan satunya untuk string koneksi akun penyimpanan lagi.
// Azure Function name and output Binding to Table Storage
[FunctionName("ProcessImageUpload")]
[return: Table("ImageText", Connection = "StorageConnection")]
// Trigger binding runs when an image is uploaded to the blob container below
public async Task<ImageContent> Run([BlobTrigger("imageanalysis/{name}",
Connection = "StorageConnection")]Stream myBlob, string name, ILogger log)
{
// Get connection configurations
string subscriptionKey = Environment.GetEnvironmentVariable("ComputerVisionKey");
string endpoint = Environment.GetEnvironmentVariable("ComputerVisionEndpoint");
string imgUrl = $"https://{ Environment.GetEnvironmentVariable("StorageAccountName")}
.blob.core.windows.net/imageanalysis/{name}";
ComputerVisionClient client = new ComputerVisionClient(
new ApiKeyServiceClientCredentials(subscriptionKey)) { Endpoint = endpoint };
// Get the analyzed image contents
var textContext = await AnalyzeImageContent(client, imgUrl);
return new ImageContent {
PartitionKey = "Images",
RowKey = Guid.NewGuid().ToString(), Text = textContext
};
}
public class ImageContent
{
public string PartitionKey { get; set; }
public string RowKey { get; set; }
public string Text { get; set; }
}
Kode ini juga mengambil nilai konfigurasi penting dari variabel lingkungan, seperti string koneksi akun penyimpanan dan kunci Computer Vision. Kita akan menambahkan variabel lingkungan ini ke lingkungan Azure Function setelah disebarkan.
Fungsi ProcessImage
juga menggunakan metode kedua yang disebut AnalyzeImage
, ditunjukkan di bawah ini. Kode ini menggunakan Titik Akhir URL dan Kunci akun Computer Vision untuk membuat permintaan ke server tersebut agar memproses gambar kita. Permintaan tersebut akan mengembalikan semua teks yang ditemukan dalam gambar, kemudian teks tersebut akan ditulis ke Table Storage menggunakan pengikatan output pada metode Run
.
static async Task<string> ReadFileUrl(ComputerVisionClient client, string urlFile)
{
// Analyze the file using Computer Vision Client
var textHeaders = await client.ReadAsync(urlFile);
string operationLocation = textHeaders.OperationLocation;
Thread.Sleep(2000);
// Complete code omitted for brevity, view in sample project
return text.ToString();
}
Berjalan secara lokal
Jika ingin menjalankan proyek secara lokal, Anda dapat mengisi variabel lingkungan menggunakan file local.settings.json. Di dalam file ini, isi nilai tempat penampung dengan nilai yang Anda simpan sebelumnya saat membuat sumber daya Azure.
Meskipun kode Azure Function akan berjalan secara lokal, kode tersebut masih akan terhubung ke layanan langsung di Azure, dibandingkan menggunakan emulator lokal apa pun.
{
"IsEncrypted": false,
"Values": {
"AzureWebJobsStorage": "UseDevelopmentStorage=true",
"FUNCTIONS_WORKER_RUNTIME": "dotnet",
"StorageConnection": "your-storage-account-connection-string",
"StorageAccountName": "your-storage-account-name",
"ComputerVisionKey": "your-computer-vision-key",
"ComputerVisionEndPoint": "your-computer-vision-endpoint"
}
}
Menyebarkan kode ke Azure Functions
Sekarang Anda siap untuk menyebarkan aplikasi ke Azure dengan menggunakan Visual Studio. Anda juga dapat membuat aplikasi Azure Functions di Azure secara bersamaan sebagai bagian dari proses penyebaran.
Untuk memulai, klik kanan simpul proyek ProcessImage dan pilih Terbitkan.
Pada layar dialog Terbitkan, pilih Azure dan pilih Berikutnya.
Pilih Aplikasi Azure Function (Windows) atau Aplikasi Azure Function (Linux) di layar berikutnya, lalu pilih Berikutnya.
Pada langkah Instans Functions, pastikan untuk memilih langganan yang ingin Anda sebarkan. Selanjutnya, pilih simbol hijau + di sisi kanan dialog.
Dialog baru akan terbuka. Masukkan nilai berikut untuk Aplikasi Fungsi baru Anda.
- Nama: Masukkan msdocsprocessimage atau yang serupa.
- Nama Langganan: Pilih langganan apa pun yang ingin Anda gunakan.
- Grup Sumber Daya: Pilih grup sumber daya
msdocs-storage-function
yang Anda buat sebelumnya. - Jenis Paket: Pilih Konsumsi.
- Lokasi: Pilih wilayah terdekat.
- Azure Storage: Pilih akun penyimpanan yang Anda buat sebelumnya.
Setelah Anda mengisi semua nilai tersebut, pilih Buat. Visual Studio dan Azure akan mulai memprovisikan sumber daya yang diminta dan akan memakan waktu beberapa saat hingga selesai.
Setelah proses selesai, pilih Selesai untuk menutup alur kerja dialog.
Langkah terakhir untuk menyebarkan Azure Function adalah memilih Terbitkan di kanan atas layar. Menerbitkan fungsi tersebut mungkin juga membutuhkan waktu beberapa saat hingga selesai. Setelah selesai, aplikasi Anda akan berjalan di Azure.
Sambungkan layanan
Azure Function berhasil disebarkan, tetapi belum dapat terhubung ke akun penyimpanan dan layanan Computer Vision. Kunci dan string koneksi yang benar harus ditambahkan terlebih dahulu ke pengaturan konfigurasi aplikasi Azure Functions.
Di bagian atas portal Azure, cari fungsi dan pilih Aplikasi Fungsi dari hasil.
Pada layar Aplikasi Fungsi, pilih Aplikasi Fungsi yang Anda buat di Visual Studio.
Pada halaman gambaran umum Aplikasi Fungsi, pilih Konfigurasi di navigasi kiri. Maka akan terbuka halaman tempat kita dapat mengelola berbagai jenis pengaturan konfigurasi untuk aplikasi. Untuk saat ini, kami tertarik pada bagian Pengaturan Aplikasi.
Langkah selanjutnya adalah menambahkan pengaturan untuk nama akun penyimpanan dan string koneksi, kunci rahasia Computer Vision, dan titik akhir Computer Vision.
Di tab Pengaturan aplikasi, pilih + Pengaturan aplikasi baru. Di flyout yang muncul, masukkan nilai berikut:
- Nama: Masukkan nilai ComputerVisionKey.
- Nilai: Tempelkan di kunci Computer Vision yang Anda simpan dari sebelumnya.
Klik OK untuk menambahkan pengaturan ini ke aplikasi Anda.
Selanjutnya, ulangi proses ini untuk titik akhir layanan Computer Vision, menggunakan nilai berikut:
- Nama: Masukkan nilai ComputerVisionEndpoint.
- Nilai: Tempelkan URL titik akhir yang Anda simpan sebelumnya.
Ulangi langkah ini lagi untuk koneksi akun penyimpanan menggunakan nilai berikut:
- Nama: Masukkan nilai StorageConnection.
- Nilai: Tempelkan string koneksi yang Anda simpan sebelumnya.
Terakhir, ulangi proses ini sekali lagi untuk nama akun penyimpanan menggunakan nilai berikut:
- Nama: Masukkan nilai StorageAccountName.
- Nilai: Masukkan nama akun penyimpanan yang Anda buat.
Setelah Anda menambahkan pengaturan aplikasi ini, pastikan untuk memilih Simpan di bagian atas halaman konfigurasi. Setelah penyimpanan selesai, Anda dapat menekan Refresh untuk memastikan pengaturan telah diambil.
Semua variabel lingkungan yang diperlukan untuk menghubungkan fungsi Azure ke layanan yang berbeda sekarang telah siap.
Mengunggah gambar ke Blob Storage
Sekarang Anda siap untuk menguji aplikasi! Anda dapat mengunggah blob ke kontainer, lalu memverifikasi bahwa teks dalam gambar disimpan ke Table Storage.
Pertama, di bagian atas portal Azure, cari Storage dan pilih akun Storage. Pada halaman akun penyimpanan, pilih akun yang Anda buat sebelumnya.
Selanjutnya, pilih Kontainer di navigasi kiri, lalu buka kontainer ImageAnalysis yang Anda buat sebelumnya. Dari sini, Anda dapat mengunggah gambar pengujian di dalam browser.
Anda dapat menemukan beberapa gambar sampel yang disertakan dalam folder gambar di akar proyek sampel yang dapat diunduh, atau Anda dapat menggunakan salah satu gambar Anda sendiri.
Di bagian atas halaman ImageAnalysis, pilih Unggah. Di flyout yang terbuka, pilih ikon folder di sebelah kanan untuk membuka browser file. Pilih gambar yang ingin Anda unggah, lalu pilih Unggah.
File akan muncul di dalam kontainer blob Anda. Selanjutnya, Anda dapat memverifikasi bahwa unggahan tersebut memicu Azure Function, dan bahwa teks dalam gambar dianalisis dan disimpan ke Table Storage dengan benar.
Dengan menggunakan petunjuk navigasi di bagian atas halaman, buka satu tingkat di akun penyimpanan Anda. Temukan dan pilih Browser Storage di navigasi kiri, lalu pilih Tabel.
Sekarang tabel ImageText tersedia. Klik pada tabel untuk melihat pratinjau baris data di dalamnya. Anda akan melihat entri teks gambar yang diproses dari unggahan. Anda dapat memverifikasi menggunakan Stempel Waktu, atau dengan menampilkan konten kolom Teks.
Selamat! Anda berhasil memproses gambar yang diunggah ke Blob Storage menggunakan Azure Functions dan Computer Vision.
Membersihkan sumber daya
Jika Anda tidak ingin terus menggunakan aplikasi ini, Anda dapat menghapus sumber daya yang Anda buat dengan menghapus grup sumber daya.
- Pilih Grup sumber daya dari navigasi utama
- Pilih grup sumber daya
msdocs-storage-function
dari daftar. - Pilih tombol Hapus grup sumber daya di bagian atas halaman gambaran umum grup sumber daya.
- Masukkan nama grup sumber daya msdocs-storage-function dalam dialog konfirmasi.
- Pilih hapus. Proses untuk menghapus grup sumber daya mungkin memerlukan waktu beberapa menit untuk diselesaikan.