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 panduan singkat ini, Anda menggunakan Visual Studio Code untuk membuat aplikasi yang merespons kejadian dalam kontainer Azure Blob Storage. Setelah menguji kode secara lokal dengan menggunakan emulator, Anda menyebarkannya ke aplikasi fungsi tanpa server baru yang berjalan dalam paket Konsumsi Flex di Azure Functions.
Proyek ini menggunakan ekstensi Azure Developer CLI (azd) dengan Visual Studio Code untuk menyederhanakan inisialisasi dan memverifikasi kode proyek Anda secara lokal, serta menyebarkan kode Anda ke Azure. Penyebaran ini mengikuti praktik terbaik saat ini untuk penyebaran Azure Functions yang aman dan dapat diskalakan.
Artikel ini mendukung model pemrograman Node.js versi 4 untuk Azure Functions.
Artikel ini mendukung model pemrograman Python versi 2 untuk Azure Functions.
Prasyarat
Sebuah akun Azure dengan langganan aktif. Buat akun secara gratis.
Visual Studio Code di salah satu platform yang didukung.
Ekstensi Azure Functions untuk Visual Studio Code. Ekstensi ini memerlukan Azure Functions Core Tools. Ketika alat ini tidak tersedia secara lokal, ekstensi mencoba menginstalnya dengan menggunakan alat penginstal berbasis paket. Anda juga dapat menginstal atau memperbarui paket Core Tools dengan menjalankan
Azure Functions: Install or Update Azure Functions Core Toolsdari palet perintah. Jika Anda tidak menginstal npm atau Homebrew di komputer lokal, Anda harus menginstal atau memperbarui Core Tools secara manual.
Ekstensi C# untuk Visual Studio Code.
Java Development Kit, versi 8, 11, 17 atau 21 (Linux).
Apache Maven, versi 3.0 atau yang lebih tinggi.
-
Node.js 18.x atau lebih tinggi. Gunakan perintah
node --versionuntuk memeriksa versi Anda.
Versi Python yang didukung oleh Azure Functions. Untuk informasi selengkapnya, lihat Cara memasang Phyton.
Ekstensi Python untuk Visual Studio Code.
- Ekstensi Azure Developer CLI untuk Visual Studio Code.
Ekstensi Klien REST atau alat REST yang setara yang Anda gunakan untuk menjalankan permintaan HTTP dengan aman.
Menginisialisasi proyek
Gunakan perintah azd init dari palet perintah untuk membuat proyek kode Azure Functions lokal dari templat.
Di Visual Studio Code, buka folder atau ruang kerja tempat Anda ingin membuat proyek.
Tekan F1 untuk membuka palet perintah, cari dan jalankan perintah
Azure Developer CLI (azd): Initialize App (init), lalu pilih Pilih templat.Mungkin ada sedikit penundaan saat
azdmenginisialisasi folder atau ruang kerja saat ini.
Saat diminta, pilih Pilih templat, lalu cari dan pilih
Azure Functions C# Event Grid Blob Trigger using Azure Developer CLI.Saat diminta di terminal, masukkan nama lingkungan yang unik, seperti
blobevents-dotnet.Perintah ini menarik file proyek dari repositori templat dan menginisialisasi proyek di folder atau ruang kerja saat ini.
Saat diminta, pilih Pilih templat, lalu cari dan pilih
Azure Functions Python Event Grid Blob Trigger using Azure Developer CLI.Saat diminta di terminal, masukkan nama lingkungan yang unik, seperti
blobevents-python.Perintah ini menarik file proyek dari repositori templat dan menginisialisasi proyek di folder atau ruang kerja saat ini.
Saat diminta, pilih Pilih templat, lalu cari dan pilih
Azure Functions TypeScript Event Grid Blob Trigger using Azure Developer CLI.Saat diminta, masukkan nama lingkungan yang unik, seperti
blobevents-typescript.Perintah ini menarik file proyek dari repositori templat dan menginisialisasi proyek di folder atau ruang kerja saat ini.
Saat diminta, pilih Pilih templat, lalu cari dan pilih
Azure Functions Java Event Grid Blob Trigger using Azure Developer CLI.Saat diminta, masukkan nama lingkungan yang unik, seperti
blobevents-java.Perintah ini menarik file proyek dari repositori templat dan menginisialisasi proyek di folder atau ruang kerja saat ini.
Saat diminta, pilih Pilih templat, lalu cari dan pilih
Azure Functions PowerShell Event Grid Blob Trigger using Azure Developer CLI.Saat diminta, masukkan nama lingkungan yang unik, seperti
blobevents-powershell.Perintah ini menarik file proyek dari repositori templat dan menginisialisasi proyek di folder atau ruang kerja saat ini.
Di azd, lingkungan 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.
Menambahkan file local.settings.json
Functions memerlukan file local.settings.json untuk mengonfigurasi host saat berjalan secara lokal.
Jalankan perintah ini untuk masuk ke
srcfolder aplikasi:cd src
Buat file bernama local.settings.json di
srcfolder yang berisi data JSON ini:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "dotnet-isolated", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Buat file bernama local.settings.json di
srcfolder yang berisi data JSON ini:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "java", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Buat file bernama local.settings.json di
srcfolder yang berisi data JSON ini:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "node", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Buat file bernama local.settings.json di
srcfolder yang berisi data JSON ini:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "powershell", "FUNCTIONS_WORKER_RUNTIME_VERSION": "7.2", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Buat file bernama local.settings.json di
srcfolder yang berisi data JSON ini:{ "IsEncrypted": false, "Values": { "AzureWebJobsStorage": "UseDevelopmentStorage=true", "FUNCTIONS_WORKER_RUNTIME": "python", "PDFProcessorSTORAGE": "UseDevelopmentStorage=true" } }
Membuat dan mengaktifkan lingkungan virtual
src Di folder , jalankan perintah ini untuk membuat dan mengaktifkan lingkungan virtual bernama .venv:
python3 -m venv .venv
source .venv/bin/activate
Jika Python tidak menginstal paket venv pada distribusi Linux Anda, jalankan perintah berikut:
sudo apt-get install python3-venv
Menyiapkan emulator penyimpanan lokal
Gunakan emulator Azurite untuk menjalankan proyek kode Anda secara lokal sebelum membuat dan menggunakan sumber daya Azure.
Jika Anda belum melakukannya, instal Azurite.
Tekan F1. Di palet perintah, cari dan jalankan perintah
Azurite: Startuntuk memulai emulator penyimpanan lokal.Di area Azure , perluas Workspace>Attached Storage Accounts>Local Emulator, klik kanan (Ctrl-klik pada Mac) Kontainer Blob, pilih Buat Kontainer Blob..., dan buat dua kontainer penyimpanan blob ini di emulator lokal:
-
unprocessed-pdf: kontainer yang dipantau oleh pemicu untuk memantau peristiwa penyimpanan. -
processed-pdf: kontainer tempat fungsi mengirim blob yang diproses sebagai output.
-
Perluas Kontainer Blob, klik kanan (Ctrl+klik di Mac) unprocessed-pdf, pilih Unggah Berkas..., tekan Enter untuk memilih direktori root, dan unggah file PDF dari
datadirektori proyek.
Saat berjalan secara lokal, Anda dapat menggunakan REST untuk memicu fungsi dengan mensimulasikan fungsi yang menerima pesan dari langganan peristiwa.
Jalankan fungsi secara lokal
Visual Studio Code terintegrasi dengan alat Azure Functions Core untuk memungkinkan Anda menjalankan proyek ini di komputer pengembangan lokal Anda dengan menggunakan emulator Azurite. Variabel PDFProcessorSTORAGE lingkungan menentukan koneksi akun penyimpanan, yang juga diatur ke "UseDevelopmentStorage=true" dalam file local.settings.json saat berjalan secara lokal.
Jalankan perintah ini dari
srcfolder proyek di terminal atau prompt perintah:func startmvn clean package mvn azure-functions:runnpm install func startnpm install npm startKetika host Functions dimulai, ia menulis nama pemicu dan jenis pemicu ke output terminal. Di Functions, folder akar proyek berisi file host.json.
Dengan Core Tools yang masih berjalan di Terminal, buka
test.httpfile di proyek Anda dan pilih Kirim Permintaan untuk memicu fungsiProcessBlobUploaddengan mengirimkan event blob pengujian ke webhook event blob.Langkah ini mensimulasikan penerimaan peristiwa dari langganan peristiwa saat berjalan secara lokal, dan Anda akan melihat permintaan dan informasi file yang diproses yang ditulis dalam log. Jika Anda tidak menggunakan Klien REST, Anda harus menggunakan alat REST aman lain untuk memanggil titik akhir dengan payload di
test.http.Di area Ruang Kerja untuk kontainer blob, perluas processed-pdf dan verifikasi bahwa fungsi memproses file PDF dan menyalinnya dengan
processed-awalan.Setelah selesai, tekan Ctrl+C di jendela terminal untuk menghentikan
func.exeproses host.
Meninjau kode (opsional)
Anda dapat meninjau kode yang menentukan pemicu blob Event Grid dalam file proyek ProcessBlobUpload.cs. Fungsi ini menunjukkan cara:
- Gunakan
BlobTriggerdenganSource = BlobTriggerSource.EventGriduntuk pemrosesan hampir real-time - Ikat ke
BlobClientuntuk blob sumber danBlobContainerClientuntuk tujuan - Memproses konten blob dan menyalinnya ke kontainer lain dengan menggunakan aliran
Anda dapat meninjau kode yang menentukan pemicu blob Event Grid dalam file proyek function_app.py. Fungsi ini menunjukkan cara:
- Gunakan
@app.blob_triggerdengansource="EventGrid"untuk pemrosesan hampir real-time - Mengakses konten blob menggunakan
InputStreamparameter - Menyalin file yang diproses ke kontainer tujuan menggunakan Azure Storage SDK
Anda dapat meninjau kode yang menentukan pemicu blob Event Grid dalam file proyek processBlobUpload.ts. Fungsi ini menunjukkan cara:
- Gunakan
app.storageBlob()dengansource: 'EventGrid'untuk pemrosesan hampir real-time - Mengakses konten blob menggunakan Node.js Azure Storage SDK
- Memproses dan menyalin file ke kontainer tujuan secara asinkron
Anda dapat meninjau kode yang menentukan pemicu blob Event Grid dalam file proyek ProcessBlobUpload.java. Fungsi ini menunjukkan cara:
- Gunakan
@BlobTriggerdengansource = "EventGrid"untuk pemrosesan hampir real-time - Mengakses konten blob menggunakan
BlobInputStreamparameter - Menyalin file yang diproses ke kontainer tujuan menggunakan Azure Storage SDK untuk Java
Anda dapat meninjau kode yang menentukan pemicu blob Event Grid dalam file proyek ProcessBlobUpload/run.ps1 dan function.jsonyang sesuai. Fungsi ini menunjukkan cara:
- Konfigurasi pemicu blob dengan
"source": "EventGrid"di "function.json" untuk pemrosesan hampir real-time - Mengakses konten blob menggunakan cmdlet Azure Storage PowerShell
- Memproses dan menyalin file ke kontainer tujuan menggunakan modul Azure PowerShell
Setelah Anda meninjau dan memverifikasi kode fungsi Anda secara lokal, saatnya untuk menerbitkan proyek ke Azure.
Membuat sumber daya Azure dan menyebarkan
azd up Gunakan perintah untuk membuat aplikasi fungsi dalam paket Konsumsi Flex bersama dengan sumber daya Azure lain yang diperlukan, termasuk langganan peristiwa. Setelah infrastruktur siap, azd sebarkan juga kode proyek Anda ke aplikasi fungsi baru di Azure.
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 dengan menggunakan akun Azure Anda.Di akar proyek, tekan F1 untuk membuka palet perintah. Cari dan jalankan perintah
Azure Developer CLI (azd): Provision and Deploy (up)untuk membuat sumber daya Azure yang diperlukan dan menyebarkan kode Anda.Ketika diminta di jendela Terminal, berikan parameter penyebaran yang diperlukan ini:
Cepat Description Pilih Langganan Azure yang akan digunakan Pilih langganan tempat Anda ingin membuat sumber daya. Nama lingkungan Lingkungan yang digunakan untuk mempertahankan konteks penyebaran unik untuk aplikasi Anda. Lokasi Azure Wilayah Azure untuk membuat grup sumber daya yang berisi sumber daya Azure baru. Hanya wilayah yang saat ini mendukung paket Konsumsi Flex yang ditampilkan. Perintah
azd upini menggunakan respons Anda terhadap petunjuk ini bersama dengan file konfigurasi Bicep untuk membuat dan mengonfigurasi sumber daya Azure yang diperlukan, sambil mengikuti praktik terbaik terbaru.- Paket Konsumsi Flex dan aplikasi fungsi
- Akun Azure Storage dengan kontainer blob
- Application Insights (disarankan)
- Mengakses kebijakan dan peran untuk akun Anda
- Langganan Event Grid untuk peristiwa blob
- Koneksi layanan ke layanan dengan menggunakan identitas terkelola (alih-alih string koneksi tersimpan)
Setelah perintah berhasil diselesaikan, aplikasi Anda berjalan di Azure dengan langganan peristiwa yang dikonfigurasi untuk memicu fungsi Anda saat blob ditambahkan ke
unprocessed-pdfkontainer.Catat
AZURE_STORAGE_ACCOUNT_NAMEdanAZURE_FUNCTION_APP_NAMEdalam output. Nama-nama ini unik untuk akun penyimpanan dan aplikasi fungsi Anda di Azure.
Memverifikasi fungsi yang dideploy
Di Visual Studio Code, tekan F1. Di palet perintah, cari dan jalankan perintah
Azure Storage: Upload Files.... Terima direktori akar, dan seperti sebelumnya, unggah satu atau beberapa file PDF daridatafolder proyek.Saat diminta, pilih nama akun penyimpanan baru Anda (dari
AZURE_STORAGE_ACCOUNT_NAME). Pilih Kontainer Blob>unprocessed-pdf.Tekan F1. Di palet perintah, cari dan jalankan perintah
Azure Storage: Open in Explorer. Pilih akun penyimpanan yang sama >Kontainer Blob>processed-pdf, lalu Buka di jendela baru.Di Explorer, verifikasi bahwa file PDF yang Anda unggah diproses oleh fungsi Anda. Output dituliskan ke dalam kontainer
processed-pdfdengan awalanprocessed-.
Pemicu blob Event Grid memproses file dalam hitungan detik setelah diunggah. Kecepatan ini menunjukkan kemampuan hampir real-time dari pendekatan ini dibandingkan dengan pemicu berbasis polling blob tradisional.
Menyebarkan ulang kode Anda
Jalankan azd up perintah sebanyak yang Anda butuhkan untuk menyediakan sumber daya Azure Anda dan menyebarkan pembaruan kode ke aplikasi fungsi Anda.
Nota
File kode yang disebarkan selalu ditimpa oleh paket penyebaran terbaru.
Respons awal Anda terhadap azd perintah dan variabel lingkungan apa pun yang dihasilkan oleh azd disimpan secara lokal di lingkungan bernama Anda.
azd env get-values Gunakan perintah untuk meninjau semua variabel di lingkungan Anda yang digunakan saat membuat sumber daya Azure.
Membersihkan sumber daya
Setelah selesai bekerja dengan aplikasi fungsi dan sumber daya terkait, gunakan perintah ini untuk menghapus aplikasi fungsi dan sumber daya terkait dari Azure. Tindakan ini membantu Anda 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.