Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Dalam tutorial ini, Anda mempelajari cara mengunggah gambar ke Azure Blob Storage dan memprosesnya menggunakan Azure Functions dan Computer Vision. Anda juga mempelajari cara menerapkan pemicu dan pengikatan Azure Function sebagai bagian dari proses ini. Bersama-sama, layanan ini menganalisis gambar yang diunggah yang berisi teks, mengekstrak teks darinya, lalu menyimpan teks dalam baris database untuk analisis 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
Prerequisites
- Akun Azure dengan langganan aktif. Buat akun secara gratis.
- Visual Studio 2022
Membuat akun penyimpanan dan kontainer
Langkah pertama adalah membuat akun penyimpanan untuk menyimpan data blob yang diunggah, yang dalam skenario ini adalah gambar yang berisi teks. 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 Penyimpanan harus unik di seluruh Azure, jadi Anda mungkin 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 memvalidasi informasi yang Anda masukkan. Setelah pengaturan divalidasi, pilih Buat dan Azure mulai menyediakan akun penyimpanan, yang 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 geser keluar, masukkan Namaimageanalysis, dan pastikan tingkat akses publik disetel 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 kunci di suatu tempat untuk digunakan nanti. Catat nama
msdocsstoragefunctionakun penyimpanan untuk digunakan nanti.
Nilai-nilai ini diperlukan ketika kita perlu menghubungkan Azure Function kita ke akun penyimpanan ini.
Membuat layanan Computer Vision
Selanjutnya, buat akun layanan Computer Vision yang memproses file yang diunggah. 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-functionyang 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 membutuhkan waktu sejenak memvalidasi informasi yang Anda masukkan. Setelah pengaturan divalidasi, pilih Buat dan Azure mulai menyediakan layanan Computer Vision, yang mungkin memakan waktu sejenak.
Saat 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 berikut:
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 untuk dipahami dalam metode utama Run yang ditunjukkan di bawah ini. Azure Function menggunakan pengikatan Pemicu dan Output, yang diterapkan menggunakan atribut pada deklarasi 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 tersendiri - satu untuk nama kontainer blob untuk memantau unggahan, dan satunya untuk string koneksi akun penyimpanan kembali.
// 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 ini ProcessImage juga menggunakan metode kedua yang disebut AnalyzeImage. Kode ini menggunakan Titik Akhir URL dan Kunci akun Computer Vision untuk membuat permintaan ke server tersebut agar memproses gambar kita. Permintaan mengembalikan semua teks yang ditemukan dalam gambar, yang ditulis ke Table Storage menggunakan pengikatan output 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();
}
Beroperasi secara lokal
Jika ingin menjalankan proyek secara lokal, Anda dapat mengisi variabel lingkungan menggunakan file local.settings.json. Dalam file ini, isi nilai placeholder dengan nilai yang Anda simpan sebelumnya saat membuat sumber daya Azure.
Meskipun kode Azure Function berjalan secara lokal, kode tersebut masih terhubung ke layanan langsung di Azure, daripada 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 Fungsi Instans, pastikan untuk memilih langganan yang ingin Anda terapkan. Selanjutnya, pilih simbol hijau + di sisi kanan dialog.
Dialog baru 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-functionyang Anda buat sebelumnya. - Tipe Rencana: 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 mulai menyediakan sumber daya yang diminta, yang membutuhkan waktu beberapa saat untuk diselesaikan.
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 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 ringkasan Aplikasi Fungsi , pilih Konfigurasi di navigasi kiri untuk membuka halaman tempat kita dapat mengelola berbagai jenis pengaturan konfigurasi untuk aplikasi kita. 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 kunci Computer Vision yang sebelumnya Anda simpan.
Pilih 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 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. Pilih pada tabel untuk mempratinjau baris data di dalamnya. Anda akan melihat entri untuk teks gambar yang telah diproses dari unggahan kami. Anda dapat memverifikasi menggunakan Stempel Waktu, atau dengan menampilkan konten kolom Teks.
Congratulations! 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-functiondari 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 perlu waktu beberapa menit untuk diselesaikan.