Explore Fitur Terbaru Python 2025 Azuralabs Id

Gombloh
-
explore fitur terbaru python 2025 azuralabs id

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. Azure Functions adalah layanan komputasi tanpa server yang memungkinkan Anda menjalankan kode berbasis peristiwa tanpa menyediakan atau mengelola infrastruktur. Eksekusi fungsi dipicu oleh peristiwa seperti permintaan HTTP, pesan antrean, timer, atau perubahan penyimpananâdan menskalakan secara otomatis berdasarkan permintaan.

Panduan ini berfokus khusus pada pembangunan Azure Functions berbasis Python dan membantu Anda: - Membuat dan menjalankan aplikasi fungsi secara lokal - Memahami model pemrograman Python - Mengatur dan mengonfigurasi aplikasi Anda - Menyebarkan dan memantau aplikasi Anda di Azure - Menerapkan praktik terbaik untuk penskalaan dan performa Mencari gambaran umum konseptual? Lihat Referensi Pengembang Azure Functions. Tertarik dengan kasus penggunaan dunia nyata? Jelajahi halaman Skenario & Sampel .

Memulai Langkah Pertama Pilih lingkungan yang sesuai dengan alur kerja Anda dan masuk ke Azure Functions untuk Python: - Mulai Cepat Visual Studio Code - Panduan Memulai Cepat Alat Utama Membangun aplikasi fungsi Anda Bagian ini mencakup komponen penting untuk membuat dan menyusun aplikasi fungsi Python Anda. Topik termasuk model pemrograman, struktur proyek, pemicu dan pengikatan, dan manajemen dependensi. Model pemrograman Functions mendukung dua versi model pemrograman Python: Artikel ini menargetkan versi model Python tertentu. Pilih versi yang Anda inginkan di bagian atas artikel.

Penting Gunakan model pemrograman v2 untuk pendekatan berbasis dekorator untuk menentukan pemicu dan pengikatan langsung dalam kode Anda. Dalam model pemrograman Python v1, setiap fungsi didefinisikan sebagai metode /> main() global tanpa status di dalam file bernama __init__.py . Pemicu dan pengikatan fungsi dikonfigurasi secara terpisah dalam function.json file, dan nilai pengikatan name digunakan sebagai parameter dalam metode Anda main() .

Example Berikut adalah fungsi sederhana yang merespons permintaan HTTP: # __init__.py def main(req): user = req.params.get('user') return f'Hello, {user}!' Berikut adalah file yang function.json sesuai: { "scriptFile": "__init__.py", "bindings": [ { "authLevel": "function", "type": "httpTrigger", "direction": "in", "name": "req", "methods": [ "get", "post" ] }, { "type": "http", "direction": "out", "name": "$return" } ] } Konsep utama - Fungsi ini memiliki satu pemicu HTTP. - Objek HttpRequest berisi header permintaan, parameter kueri, parameter rute, dan isi pesan. Fungsi ini mendapatkan nilai name parameter kueri dariparams parameter objek HttpRequest .

Untuk mengirim nama dalam contoh ini, tambahkan ?name={name} ke URL fungsi yang diekspos. Misalnya, jika berjalan secara lokal, URL lengkap mungkin terlihat sepertihttp://localhost:7071/api/http_trigger?name=Test . Untuk contoh menggunakan pengikatan, lihat Pemicu dan Pengikatan. Gunakan azure-functions SDK dan sertakan anotasi tipe untuk meningkatkan dukungan IntelliSense dan editor: # __init__.py import azure.functions as func def http_trigger(req: func.HttpRequest) -> str: # requirements.txt azure-functions Pustaka azure-functions Pustaka azure-functions Python menyediakan jenis inti yang digunakan untuk berinteraksi dengan runtime Azure Functions. Untuk melihat semua jenis dan metode yang tersedia, kunjungi azure-functions API.

Kode fungsi Anda dapat digunakan azure-functions untuk: - Mengakses data input pemicu (misalnya, HttpRequest ,TimerRequest ) - Membuat nilai output (seperti HttpResponse ) - Berinteraksi dengan konteks yang disediakan runtime dan data pengikatan Jika Anda menggunakan azure-functions di aplikasi, aplikasi tersebut harus disertakan dalam dependensi proyek Anda. Catatan Pustaka azure-functions menentukan permukaan pemrograman untuk Python Azure Functions, tetapi bukan SDK tujuan umum. Gunakan secara khusus untuk menulis dan menjalankan fungsi dalam runtime Azure Functions.

Titik masuk alternatif Anda dapat mengubah perilaku default (bawaan) fungsi dengan menentukan scriptFile dan entryPoint properti dalam file function.json . Misalnya, file function.json berikut mengarahkan runtime untuk menggunakan metode custom_entry() dalam file main.py sebagai titik masuk untuk fungsi Azure Anda. { "scriptFile": "main.py", "entryPoint": "custom_entry", "bindings": [ ...

] } Struktur folder Gunakan struktur berikut untuk proyek Python Azure Functions: <project_root>/ â âââ .venv/ # (Optional) Local Python virtual environment âââ .vscode/ # (Optional) VS Code workspace settings â âââ my_first_function/ # Function directory â âââ __init__.py # Function code file â âââ function.json # Function binding configuration file â âââ my_second_function/ â âââ __init__.py â âââ function.json â âââ shared/ # (Optional) Pure helper code with no triggers/bindings â âââ utils.py â âââ additional_functions/ # (Optional) Contains blueprints for organizing related Functions â âââ blueprint_1.py â âââ tests/ # (Optional) Unit tests for your functions â âââ test_my_function.py â âââ .funcignore # Excludes files from being published âââ host.json # Global function app configuration âââ local.settings.json # Local-only app settings (not published) âââ requirements.txt # (Optional) Defines Python dependencies for remote build âââ Dockerfile # (Optional) For custom container deployment File dan folder kunci Dalam model pemrograman Python v2, Azure Functions menggunakan pendekatan berbasis decorator untuk menentukan pemicu dan pengikatan langsung dalam kode Anda.

Setiap fungsi diimplementasikan sebagai metode global tanpa status dalam function_app.py file. Example Berikut adalah fungsi sederhana yang merespons permintaan HTTP: import azure.functions as func app = func.FunctionApp() @app.route("hello") def http_trigger(req): user = req.params.get("user") return f"Hello, {user}!" # requirements.txt azure-functions Konsep utama - Kode mengimpor paket azure-functions dan menggunakan dekorator dan tipe untuk menentukan fungsi app. - Fungsi ini memiliki satu pemicu HTTP. - Objek HttpRequest berisi header permintaan, parameter kueri, parameter rute, dan isi pesan. Fungsi ini mendapatkan nilai name parameter kueri dariparams parameter objek HttpRequest .

Untuk mengirim nama dalam contoh ini, tambahkan ?name={name} ke URL fungsi yang diekspos. Misalnya, jika berjalan secara lokal, URL lengkap mungkin terlihat sepertihttp://localhost:7071/api/http_trigger?name=Test . Untuk contoh menggunakan pengikatan, lihat Pemicu dan Pengikatan. Pustaka azure-functions Pustaka azure-functions Python adalah bagian inti dari model pemrograman Azure Functions. Ini menyediakan dekorator, jenis pemicu dan pengikatan, dan objek permintaan/respons yang digunakan untuk menentukan dan berinteraksi dengan fungsi pada runtime. Untuk melihat semua jenis dan dekorator yang tersedia, kunjungi azure-functions API.

Kode aplikasi fungsi Anda bergantung pada pustaka ini untuk: - Tentukan semua fungsi menggunakan FunctionApp objek - Mendeklarasikan pemicu dan pengikatan (misalnya, @app.route ,@app.timer_trigger ) - Akses input dan output yang telah diketik (seperti HttpRequest danHttpResponse , dan Out`) azure-functions harus disertakan dalam dependensi proyek Anda. Untuk mempelajari lebih lanjut, lihat manajemen paket. Catatan Pustaka azure-functions menentukan permukaan pemrograman untuk Python Azure Functions, tetapi bukan SDK tujuan umum. Gunakan secara khusus untuk menulis dan menjalankan fungsi dalam runtime Azure Functions. Gunakan anotasi tipe untuk meningkatkan dukungan IntelliSense dan editor.

def http_trigger(req: func.HttpRequest) -> str: Mengatur dengan cetak biru Untuk aplikasi yang lebih besar atau modular, gunakan blueprints untuk menentukan fungsi dalam file Python terpisah dan mendaftarkannya dengan aplikasi utama Anda. Pemisahan ini membuat kode Anda tetap teratur dan dapat digunakan kembali.

Untuk mendefinisikan dan mendaftarkan rancangan: Tentukan cetak biru dalam file Python lain, seperti http_blueprint.py :import azure.functions as func bp = func.Blueprint() @bp.route(route="default_template") def default_template(req: func.HttpRequest) -> func.HttpResponse: return func.HttpResponse("Hello World!") Daftarkan cetak biru dalam file utama function_app.py :import azure.functions as func from http_blueprint import bp app = func.FunctionApp() app.register_functions(bp) Dengan menggunakan cetak biru, Anda dapat: - Memisahkan aplikasi Anda menjadi modul yang dapat digunakan kembali - Pertahankan fungsi terkait yang dikelompokkan menurut file atau fitur - Memperluas atau berbagi rencana antar proyek Catatan Durable Functions juga mendukung cetak biru dengan menggunakan azure-functions-durable .

Tampilkan sampel â Struktur folder Gunakan struktur berikut untuk proyek Python Azure Functions: <project_root>/ â âââ .venv/ # (Optional) Local Python virtual environment âââ .vscode/ # (Optional) VS Code workspace settings â âââ function_app.py # Main function entry point (decorator model) âââ shared/ # (Optional) Pure helper code with no triggers/bindings â âââ utils.py â âââ additional_functions/ # (Optional) Contains blueprints for organizing related Functions â âââ blueprint_1.py â âââ tests/ # (Optional) Unit tests for your functions â âââ test_my_function.py â âââ .funcignore # Excludes files from being published âââ host.json # Global function app configuration âââ local.settings.json # Local-only app settings (not published) âââ requirements.txt # (Optional) Defines Python dependencies for remote build âââ Dockerfile # (Optional) For custom container deployment File dan folder kunci [CATATAN!] requirements.txt Sertakan file ketika Anda melakukan penerapan dengan build jarak jauh.

Jika Anda tidak menggunakan build jarak jauh atau ingin menggunakan file lain untuk menentukan dependensi aplikasi, Anda dapat melakukan build lokal dan menyebarkan aplikasi dengan dependensi bawaan. Untuk panduan tentang pengujian unit, lihat Pengujian Unit. Untuk penyebaran kontainer, lihat Menyebarkan dengan kontainer kustom. Pemicu dan pengikatan Azure Functions menggunakan trigger untuk memulai eksekusi fungsi dan binding untuk menghubungkan kode Anda ke layanan lain seperti penyimpanan, antrean, dan database. Dalam model pemrograman Python v2, Anda mendeklarasikan pengikatan dengan menggunakan dekorator.

Ada dua jenis pengikatan utama: - Pemicu (input yang memulai fungsi) - Input dan output (sumber data atau tujuan tambahan) Untuk informasi selengkapnya tentang pemicu dan pengikatan yang tersedia, lihat Triggers dan Pengikatan di Azure Functions.

Contoh: Pemicu Timer dengan Input Blob Fungsi ini: - Memicu otomatis setiap 10 menit - Membaca dari Blob dengan menggunakan Pengikatan Jenis SDK - Cache hasil dan tulis ke file sementara import azure.functions as func import azurefunctions.extensions.bindings.blob as blob import logging import tempfile CACHED_BLOB_DATA = None app = func.FunctionApp() @app.function_name(name="TimerTriggerWithBlob") @app.schedule(schedule="0 */10 * * * *", arg_name="mytimer") @app.blob_input(arg_name="client", path="PATH/TO/BLOB", connection="BLOB_CONNECTION_SETTING") def timer_trigger_with_blob(mytimer: func.TimerRequest, client: blob.BlobClient, context: func.Context) -> None: global CACHED_BLOB_DATA if CACHED_BLOB_DATA is None: # Download blob and save as a global variable CACHED_BLOB_DATA = client.download_blob().readall() # Create temp file prefix my_prefix = context.invocation_id temp_file = tempfile.NamedTemporaryFile(prefix=my_prefix) temp_file.write(CACHED_BLOB_DATA) logging.info(f"Cached data written to {temp_file.name}") Konsep utama - Gunakan pengikatan tipe SDK untuk bekerja dengan tipe kaya.

Untuk informasi selengkapnya, lihat Pengikatan jenis SDK. - Anda dapat menggunakan variabel global untuk menyimpan komputasi mahal, tetapi statusnya tidak dijamin bertahan di seluruh eksekusi fungsi. - File sementara disimpan di tmp/ dan tidak dijamin akan bertahan di seluruh pemanggilan atau instans pelebaran skala. - Anda dapat mengakses konteks pemanggilan fungsi melalui kelas Konteks.

Contoh: Pemicu HTTP dengan Masukan Cosmos DB dan Keluaran Event Hub Fungsi ini: - Pemicu pada permintaan HTTP - Membaca dari Cosmos DB - Menulis ke output Pusat Aktivitas - Mengembalikan respons HTTP # __init__.py import azure.functions as func def main(req: func.HttpRequest, documents: func.DocumentList, event: func.Out[str]) -> func.HttpResponse: # Content from HttpRequest and Cosmos DB input http_content = req.params.get("body") doc_id = documents[0]["id"] if documents else "No documents found" event.set(f"HttpRequest content: {http_content} | CosmosDB ID: {doc_id}") return func.HttpResponse( "Function executed successfully.", status_code=200 ) // function.json { "scriptFile": "__init__.py", "entryPoint": "main", "bindings": [ { "type": "httpTrigger", "direction": "in", "name": "req", "methods": ["get", "post"], "route": "file" }, { "type": "http", "direction": "out", "name": "$return" }, { "type": "cosmosDB", "direction": "in", "name": "documents", "databaseName": "test", "containerName": "items", "id": "cosmosdb-input-test", "connection": "COSMOSDB_CONNECTION_SETTING" }, { "type": "eventHub", "direction": "out", "name": "event", "eventHubName": "my-test-eventhub", "connection": "EVENTHUB_CONNECTION_SETTING" } ] } Konsep Utama - Setiap fungsi memiliki satu pemicu, tetapi dapat memiliki beberapa pengikatan.

Tambahkan input dengan menentukan direction sebagai "in" difunction.json . Output memilikidirection dariout . - Anda dapat mengakses detail permintaan melalui HttpRequest objek dan membuat kustomHttpResponse dengan header, kode status, dan isi.

import azure.functions as func app = func.FunctionApp() @app.function_name(name="HttpTriggerWithCosmosDB") @app.route(route="file") @app.cosmos_db_input(arg_name="documents", database_name="test", container_name="items", connection="COSMOSDB_CONNECTION_SETTING") @app.event_hub_output(arg_name="event", event_hub_name="my-test-eventhub", connection="EVENTHUB_CONNECTION_SETTING") def http_trigger_with_cosmosdb(req: func.HttpRequest, documents: func.DocumentList, event: func.Out[str]) -> func.HttpResponse: # Content from HttpRequest and Cosmos DB input http_content = req.params.get('body') doc_id = documents[0]['id'] event.set("HttpRequest content: " + http_content + " | CosmosDB ID: " + doc_id) return func.HttpResponse( f"Function executed successfully.", status_code=200 ) Konsep utama - Gunakan @route() atau dekorator khusus pemicu (@timer_trigger ,@queue_trigger , dan lainnya) untuk menentukan bagaimana fungsi Anda dipanggil.

Tambahkan input dengan menggunakan dekorator seperti @blob_input , ,@queue_input dan lainnya. - Output dapat berupa: - Dikembalikan secara langsung (jika hanya satu output) - Ditetapkan dengan menggunakan Out pengikatan dan.set() metode untuk beberapa output. - Anda dapat mengakses detail permintaan melalui HttpRequest objek dan membuat kustomHttpResponse dengan header, kode status, dan isi. Pengikatan tipe SDK Untuk pemicu dan pengikatan tertentu, Anda dapat bekerja dengan jenis data yang diimplementasikan oleh Azure SDKs dan kerangka kerja yang mendasar.

Dengan menggunakan pengikatan jenis SDK ini, Anda dapat berinteraksi dengan data pengikatan seolah-olah Anda menggunakan SDK layanan yang mendasar. Untuk informasi selengkapnya, lihat pengikatan jenis SDK yang didukung. Penting Dukungan pengikatan jenis SDK untuk Python hanya tersedia dalam model pemrograman Python v2. Variabel lingkungan Variabel lingkungan dalam Azure Functions memungkinkan Anda mengelola nilai konfigurasi, string koneksi, dan rahasia aplikasi dengan aman tanpa melakukan hardcoding dalam kode fungsi Anda. Anda dapat menentukan variabel lingkungan: - Secara lokal: dalam file local.settings.json, selama pengembangan lokal.

Di Azure: sebagai Pengaturan Aplikasi di halaman konfigurasi Aplikasi Fungsi Anda di portal Azure. Akses variabel langsung dalam kode Anda dengan menggunakan os.environ atau os.getenv . setting_value = os.getenv("myAppSetting", "default_value") Catatan Azure Functions juga mengenali variabel lingkungan sistem yang mengonfigurasi runtime Functions dan perilaku pekerja Python. Variabel ini tidak secara eksplisit digunakan dalam kode fungsi Anda tetapi memengaruhi cara aplikasi Anda berjalan. Untuk daftar lengkap variabel lingkungan sistem, lihat Referensi pengaturan aplikasi.

Manajemen paket Untuk menggunakan paket Python lain di aplikasi Azure Functions Anda, cantumkan dalam file requirements.txt di akar proyek Anda. Paket-paket ini diimpor oleh sistem impor Python, dan Anda kemudian dapat mereferensikan paket tersebut seperti biasa. Untuk mempelajari selengkapnya tentang opsi pembuatan dan penyebaran dengan dependensi eksternal, lihat Opsi Build untuk Aplikasi Fungsi Python. Misalnya, sampel berikut menunjukkan bagaimana requests modul disertakan dan digunakan dalam aplikasi fungsi. <requirements.txt> requests==2.31.0 Instal paket secara lokal dengan pip install -r requirements.txt .

Setelah paket diinstal, Anda dapat mengimpor dan menggunakannya dalam kode fungsi Anda: import azure.functions as func import requests def main(req: func.HttpRequest) -> func.HttpResponse: r = requests.get("https://api.github.com") return func.HttpResponse(f"Status: {r.status_code}") import azure.functions as func import requests app = func.FunctionApp() @app.function_name(name="HttpExample") @app.route(route="call_api") def main(req: func.HttpRequest) -> func.HttpResponse: r = requests.get("https://api.github.com") return func.HttpResponse(f"Status: {r.status_code}") Pertimbangan - Konflik dengan modul bawaan: - Hindari penamaan folder proyek Anda setelah pustaka standar Python (misalnya, email/ ,json/ ). - Jangan sertakan pustaka asli Python (seperti logging ,asyncio , atauuuid ) direquirements.txt .

Hindari penamaan folder proyek Anda setelah pustaka standar Python (misalnya, - Penyebaran: - Untuk mencegah ModuleNotFound kesalahan, pastikan semua dependensi yang diperlukan tercantum dalamrequirements.txt . - Jika Anda memperbarui versi Python aplikasi, bangun kembali dan sebarkan ulang aplikasi Anda pada versi Python baru untuk menghindari konflik dependensi dengan paket yang dibuat sebelumnya. - Untuk mencegah - Dependensi Non-PyPI: - Anda dapat menyertakan dependensi yang tidak tersedia di PyPI di aplikasi Anda, seperti paket lokal, file roda, atau umpan privat. Lihat Dependensi kustom di Python Azure Functions untuk instruksi penyiapan.

Dependensi pekerja Python di Azure Functions - Jika paket Anda berisi pustaka tertentu yang mungkin bertabrakan dengan dependensi pekerja (misalnya, protobuf ataugrpcio ), konfigurasikan PYTHON_ISOLATE_WORKER_DEPENDENCIES ke 1 di pengaturan aplikasi untuk mencegah aplikasi Anda mengacu pada dependensi pekerja. Untuk Python 3.13 ke atas, fitur ini diaktifkan secara default. - Jika paket Anda berisi pustaka tertentu yang mungkin bertabrakan dengan dependensi pekerja (misalnya, Menjalankan dan meluncurkan Bagian ini menyediakan informasi tentang menjalankan fungsi secara lokal, dukungan versi Python, opsi build dan penyebaran, serta konfigurasi runtime.

Gunakan informasi ini untuk berhasil menjalankan aplikasi fungsi Anda di lingkungan lokal dan Azure. Beroperasi secara lokal Anda dapat menjalankan dan menguji aplikasi fungsi Python di komputer lokal Anda sebelum menyebarkan ke Azure.

Menggunakan Azure Functions Core Tools Instal Azure Functions Core Tools dan mulai runtime lokal dengan menjalankan perintah func start dari akar proyek Anda: func start Saat Anda memulai aplikasi fungsi secara lokal, Core Tools menampilkan semua fungsi yang ditemukannya untuk aplikasi Anda: Functions: http_trigger: http://localhost:7071/api/http_trigger Anda dapat mempelajari selengkapnya tentang cara menggunakan Core Tools dengan mengunjungi Develop Azure Functions secara lokal menggunakan Core Tools. Memanggil fungsi secara langsung Dengan menggunakan azure-functions >= 1.21.0 , Anda juga dapat memanggil fungsi secara langsung dengan menggunakan penerjemah Python tanpa menjalankan Core Tools.

Pendekatan ini berguna untuk pengujian unit cepat: # function_app.py import azure.functions as func app = func.FunctionApp(http_auth_level=func.AuthLevel.ANONYMOUS) @app.route(route="http_trigger") def http_trigger(req: func.HttpRequest) -> func.HttpResponse: return "Hello, World!" # Test the function directly print(http_trigger(None)) Untuk melihat output, jalankan file secara langsung dengan Python: > python function_app.py Hello, World! # __init__.py import azure.functions as func def main(req: func.HttpRequest) -> func.HttpResponse: return func.HttpResponse("Hello, World!") # Test the function directly print(main(None)) Untuk melihat output, jalankan file secara langsung dengan Python: > python __init__.py Hello, World!

Pendekatan ini tidak memerlukan paket atau penyiapan tambahan dan sangat ideal untuk validasi cepat selama pengembangan. Untuk pengujian yang lebih mendalam, lihat Pengujian Unit Versi Python yang didukung Azure Functions mendukung versi Python yang tercantum dalam Bahasa yang Didukung di Azure Functions. Untuk informasi umum selengkapnya, lihat kebijakan dukungan runtime Azure Functions. Penting Jika Anda mengubah versi Python untuk aplikasi fungsi, Anda harus membangun kembali dan menyebarkan ulang aplikasi dengan menggunakan versi baru. Artefak dan dependensi penyebaran yang ada tidak dibangun kembali secara otomatis saat versi Python berubah.

Pembangunan dan Penerapan Untuk mempelajari selengkapnya tentang mekanisme build yang direkomendasikan untuk skenario Anda, lihat Opsi Build. Untuk gambaran umum tentang penyebaran, lihat teknologi penerapan di Azure Functions. Perbandingan Cepat Mekanisme Penyebaran Catatan Pembuatan Fungsi berbasis portal tidak mendukung dependensi pihak ketiga dan tidak disarankan untuk membuat aplikasi produksi. Anda tidak dapat menginstal atau mereferensikan paket di luar azure-functions dan pustaka standar Python bawaan. Penting Setelah 30 September 2028, opsi untuk menghosting aplikasi fungsi Anda di Linux dalam paket Konsumsi dihentikan.

Untuk menghindari gangguan, migrasikan aplikasi paket Konsumsi yang ada yang berjalan di Linux ke paket Konsumsi Flex sebelum tanggal tersebut. Aplikasi yang berjalan di Windows dalam paket Konsumsi tidak terpengaruh oleh perubahan ini. Setelah 30 September 2025, tidak ada fitur baru dan tidak ada dukungan tumpukan bahasa baru yang ditambahkan ke paket Konsumsi Linux. Versi bahasa terakhir yang didukung untuk Konsumsi Linux adalah: .NET 9, Python 3.12, Node.js 22, PowerShell 7.4, dan Java 21. Versi bahasa yang lebih baru tidak didukung untuk Konsumsi Linux.

Untuk informasi selengkapnya, lihat Memigrasikan aplikasi paket Konsumsi ke paket Konsumsi Flex. Python 3.13+ pembaruan Dimulai dengan Python 3.13, Azure Functions memperkenalkan beberapa peningkatan runtime dan performa utama yang memengaruhi cara Anda membangun dan menjalankan aplikasi Anda. Perubahan utama meliputi: Kontrol versi runtime: Anda sekarang dapat secara opsional menyematkan atau meningkatkan aplikasi Anda ke versi pekerja Python tertentu dengan merujuk paket azure-functions-runtime direquirements.txt Anda.Tanpa mengaktifkan kontrol versi, aplikasi Anda berjalan pada versi default runtime Python, yang dikelola Functions.

Anda harus memodifikasi file requirements.txt untuk meminta versi terbaru yang dirilis, versi yang telah dirilis sebelumnya, atau untuk menyematkan aplikasi Anda ke versi runtime Python tertentu. Anda mengaktifkan kontrol versi runtime dengan menambahkan referensi ke paket runtime Python ke file requirements.txt Anda, di mana nilai yang ditetapkan ke paket menentukan versi runtime yang digunakan. Hindari membatasi aplikasi produksi apa pun pada versi runtime prarilis (alpha, beta, atau dev). Untuk mengetahui perubahan, tinjau catatan rilis runtime Python secara teratur.

Tabel berikut menunjukkan perilaku penerapan versi berdasarkan nilai versi pengaturan ini dalam file requirements.txt Anda: Isolasi dependensi: Dependensi aplikasi Anda (seperti grpcio atauprotobuf ) sepenuhnya terisolasi dari dependensi pekerja, mencegah konflik versi. Pengaturan aplikasiPYTHON_ISOLATE_WORKER_DEPENDENCIES tidak akan berdampak pada aplikasi yang berjalan di Python 3.13 atau yang lebih baru.Penyiapan streaming HTTP yang disederhanakanâtidak diperlukan pengaturan aplikasi khusus. Dukungan untuk ekstensi pekerja dan fitur memori bersama telah dihapus.

Kontrol versi runtime: Anda sekarang dapat secara opsional menyematkan atau meningkatkan aplikasi Anda ke versi pekerja Python tertentu dengan merujuk paket azure-functions-runtime-v1 direquirements.txt Anda.Tanpa mengaktifkan kontrol versi, aplikasi Anda berjalan pada versi default runtime Python, yang dikelola Functions. Anda harus memodifikasi file requirements.txt untuk meminta versi terbaru yang dirilis, versi yang telah dirilis sebelumnya, atau untuk menyematkan aplikasi Anda ke versi runtime Python tertentu.

Anda mengaktifkan kontrol versi runtime dengan menambahkan referensi ke paket runtime Python ke file requirements.txt Anda, di mana nilai yang ditetapkan ke paket menentukan versi runtime yang digunakan. Hindari membatasi aplikasi produksi apa pun pada versi runtime prarilis (alpha, beta, atau dev). Untuk mengetahui perubahan, tinjau catatan rilis runtime Python secara teratur. Tabel berikut menunjukkan perilaku penerapan versi berdasarkan nilai versi pengaturan ini dalam file requirements.txt Anda: Isolasi dependensi: Dependensi aplikasi Anda (seperti grpcio atauprotobuf ) sepenuhnya terisolasi dari dependensi pekerja, mencegah konflik versi.

Pengaturan aplikasiPYTHON_ISOLATE_WORKER_DEPENDENCIES tidak akan berdampak pada aplikasi yang berjalan di Python 3.13 atau yang lebih baru.Dukungan untuk ekstensi pekerja dan fitur memori bersama telah dihapus. Pengamatan dan pengujian Bagian ini mencakup log, monitoring, dan kemampuan testing untuk membantu Anda men-debug masalah, melacak performa, dan memastikan keandalan aplikasi fungsi Python Anda. Pencatatan dan pemantauan Azure Functions mengekspos pencatat akar yang dapat Anda gunakan langsung dengan modul logging bawaan Python. Setiap pesan yang ditulis menggunakan pencatat ini secara otomatis dikirim ke Application Insights saat aplikasi Anda berjalan di Azure.

Contoh pengelogan dengan pemicu HTTP import logging import azure.functions as func def main(req: func.HttpRequest) -> func.HttpResponse: logging.debug("Example debug log") logging.info("Example info log") logging.warning("Example warning") logging.error("Example error log") return func.HttpResponse("OK") import logging import azure.functions as func app = func.FunctionApp() @app.route(route="http_trigger") def http_trigger(req) -> func.HttpResponse: logging.debug("Example debug log") logging.info("Example info log") logging.warning("Example warning") logging.error("Example error log") return func.HttpResponse("OK") Anda dapat menggunakan set lengkap tingkat pengelogan (debug , info , warning , error , critical ), dan mereka muncul di portal Azure di bawah Log atau Application Insights.

Untuk mempelajari selengkapnya tentang memantau Azure Functions di portal, lihat Monitor Azure Functions. Catatan Untuk melihat log debug di Application Insights, diperlukan lebih banyak penyiapan. Anda dapat mengaktifkan fitur ini dengan mengatur PYTHON_ENABLE_DEBUG_LOGGING ke 1 dan mengatur logLevel ke trace atau debug dalam file host.json Anda. Secara default, log debug tidak terlihat di Application Insights. Pengelogan dari utas latar belakang Jika fungsi Anda memulai utas baru dan perlu mencatat dari utas tersebutcontext , pastikan untuk meneruskan argumen context ke utas.

context mencakup penyimpanan thread-lokal dan status saat ini invocation_id , yang harus diatur pada utas pekerja agar log dapat dikaitkan dengan benar dengan pelaksanaan fungsi.

import logging import threading import azure.functions as func def main(req: func.HttpRequest, context) -> func.HttpResponse: logging.info("Function started") t = threading.Thread(target=log_from_thread, args=(context,)) t.start() return "okay" def log_from_thread(context): # Associate the thread with the current invocation context.thread_local_storage.invocation_id = context.invocation_id logging.info("Logging from a background thread") import azure.functions as func import logging import threading app = func.FunctionApp() @app.route(route="http_trigger") def http_trigger(req, context) -> func.HttpResponse: logging.info("Function started") t = threading.Thread(target=log_from_thread, args=(context,)) t.start() return "okay" def log_from_thread(context): # Associate the thread with the current invocation context.thread_local_storage.invocation_id = context.invocation_id logging.info("Logging from a background thread") Mengonfigurasi pencatat kustom Anda dapat mengonfigurasi pencatat kustom di Python saat Anda memerlukan kontrol lebih besar atas perilaku pengelogan, seperti pemformatan kustom, pemfilteran log, atau integrasi pihak ketiga.

Untuk mengonfigurasi pencatat kustom, gunakan logging.getLogger() Python dengan nama kustom dan tambahkan handler atau formatter sesuai kebutuhan. import logging custom_logger = logging.getLogger('my_custom_logger') Dukungan OpenTelemetry Azure Functions untuk Python juga mendukung OpenTelemetry, yang memungkinkan Anda memancarkan jejak, metrik, dan log dalam format standar. Menggunakan OpenTelemetry sangat berharga untuk aplikasi atau skenario terdistribusi di mana Anda ingin mengekspor telemetri ke alat di luar Application Insights (seperti Grafana atau Jaeger). Lihat panduan mulai cepat OpenTelemetry untuk Azure Functions (Python) untuk petunjuk penyiapan dan contoh kode.

Pengujian Unit Tulis dan jalankan pengujian unit untuk fungsi Anda dengan menggunakan pytest . Anda dapat menguji fungsi Python seperti kode Python lainnya dengan menggunakan kerangka kerja pengujian standar. Untuk sebagian besar pengikatan, Anda dapat membuat objek input tiruan dengan membuat instans kelas yang sesuai dari azure.functions paket. Dengan menggunakan my_function sebagai contoh, contoh berikut adalah tes tiruan dari fungsi yang dipicu HTTP: Pertama, buat <file project_root>/function_app.py dan terapkan my_function fungsi sebagai pemicu HTTP.

# <project_root>/function_app.py import azure.functions as func import logging app = func.FunctionApp() # Define the HTTP trigger that accepts the ?value=<int> query parameter # Double the value and return the result in HttpResponse @app.function_name(name="my_function") @app.route(route="hello") def my_function(req: func.HttpRequest) -> func.HttpResponse: logging.info('Executing myfunction.') initial_value: int = int(req.params.get('value')) doubled_value: int = initial_value * 2 return func.HttpResponse( body=f"{initial_value} * 2 = {doubled_value}", status_code=200 ) Anda dapat mulai menulis kasus pengujian untuk pemicu HTTP Anda.

# <project_root>/test_my_function.py import unittest import azure.functions as func from function_app import my_function class TestFunction(unittest.TestCase): def test_my_function(self): # Construct a mock HTTP request. req = func.HttpRequest(method='GET', body=None, url='/api/my_function', params={'value': '21'}) # Call the function. func_call = main.build().get_user_function() resp = func_call(req) # Check the output. self.assertEqual( resp.get_body(), b'21 * 2 = 42', ) Di dalam folder lingkungan virtual Python, Anda dapat menjalankan perintah berikut untuk menguji aplikasi: pip install pytest pytest test_my_function.py Anda melihat hasilnya pytest di terminal, seperti ini: ============================================================================================================ test session starts ============================================================================================================ collected 1 item test_my_function.py .

[100%] ============================================================================================================= 1 passed in 0.24s ============================================================================================================= Pengoptimalan dan topik tingkat lanjut Untuk mempelajari selengkapnya tentang mengoptimalkan aplikasi fungsi Python Anda, lihat artikel berikut: - Skalabilitas & Performa - Penggunaan Flask Framework dengan Azure Functions - Durable Functions - HTTP Streaming Artikel terkait Untuk informasi selengkapnya tentang Functions, lihat artikel berikut ini: - dokumentasi API paket Azure Functions - Praktik terbaik untuk Azure Functions - Azure Functions pemicu dan pengikatan - pengikatan Blob Storage - Pengikatan HTTP dan webhook - Pengikatan Penyimpanan Antrean - Pemicu Waktu Mengalami masalah saat menggunakan Python?

People Also Asked

Explore Fitur Terbaru Python 2025 - azuralabs.id?

Untuk menghindari gangguan, migrasikan aplikasi paket Konsumsi yang ada yang berjalan di Linux ke paket Konsumsi Flex sebelum tanggal tersebut. Aplikasi yang berjalan di Windows dalam paket Konsumsi tidak terpengaruh oleh perubahan ini. Setelah 30 September 2025, tidak ada fitur baru dan tidak ada dukungan tumpukan bahasa baru yang ditambahkan ke paket Konsumsi Linux. Versi bahasa terakhir yang di...

Apa yang Baru di Python — Dokumentasi Python 3.14.3?

Untuk menghindari gangguan, migrasikan aplikasi paket Konsumsi yang ada yang berjalan di Linux ke paket Konsumsi Flex sebelum tanggal tersebut. Aplikasi yang berjalan di Windows dalam paket Konsumsi tidak terpengaruh oleh perubahan ini. Setelah 30 September 2025, tidak ada fitur baru dan tidak ada dukungan tumpukan bahasa baru yang ditambahkan ke paket Konsumsi Linux. Versi bahasa terakhir yang di...

Pembaruan untuk Python 3.13+ di Azure Functions?

Untuk informasi selengkapnya, lihat Memigrasikan aplikasi paket Konsumsi ke paket Konsumsi Flex. Python 3.13+ pembaruan Dimulai dengan Python 3.13, Azure Functions memperkenalkan beberapa peningkatan runtime dan performa utama yang memengaruhi cara Anda membangun dan menjalankan aplikasi Anda. Perubahan utama meliputi: Kontrol versi runtime: Anda sekarang dapat secara opsional menyematkan atau men...

Revolusi Performa dan Ekosistem 2025: Python Melangkah ke Era ...?

Panduan ini berfokus khusus pada pembangunan Azure Functions berbasis Python dan membantu Anda: - Membuat dan menjalankan aplikasi fungsi secara lokal - Memahami model pemrograman Python - Mengatur dan mengonfigurasi aplikasi Anda - Menyebarkan dan memantau aplikasi Anda di Azure - Menerapkan praktik terbaik untuk penskalaan dan performa Mencari gambaran umum konseptual? Lihat Referensi Pengembang...

Python 3.14 Rilis, Bawa Fitur Free-Threaded dan JIT Eksperimental?

Pengaturan aplikasiPYTHON_ISOLATE_WORKER_DEPENDENCIES tidak akan berdampak pada aplikasi yang berjalan di Python 3.13 atau yang lebih baru.Dukungan untuk ekstensi pekerja dan fitur memori bersama telah dihapus. Pengamatan dan pengujian Bagian ini mencakup log, monitoring, dan kemampuan testing untuk membantu Anda men-debug masalah, melacak performa, dan memastikan keandalan aplikasi fungsi Python ...