Pembangun Python boleh menggunakan Azure Functions untuk mencipta aplikasi tanpa pelayan yang ringan, berskala dan cekap. Dalam siaran ini, kami akan menumpukan pada pencetus.
Apakah Pencetus dalam Fungsi Azure?
Pencetus adalah asas kepada Fungsi Azure. Mereka menentukan cara fungsi dipanggil. Setiap fungsi mesti mempunyai tepat satu pencetus, dan jenis pencetus menentukan muatan data yang tersedia untuk fungsi tersebut. Azure menyokong pelbagai pencetus, termasuk:
1. Pencetus HTTP
- Membenarkan fungsi digunakan melalui permintaan HTTP.
- Berguna untuk membina API atau membalas webhooks.
- Contoh:
import azure.functions as func
import datetime
import json
import logging
app = func.FunctionApp()
@app.route(route="http_trigger", auth_level=func.AuthLevel.ANONYMOUS)
def http_trigger(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
return func.HttpResponse("Hello world from HTTP trigger")
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Parameter:
-
laluan: Menentukan laluan URL yang akan bertindak balas oleh pencetus HTTP. Dalam kes ini, fungsi boleh diakses di /api/http_trigger.
-
auth_level: Menentukan tahap pengesahan untuk fungsi. Pilihan termasuk:
-
TANPA NAMA: Tiada pengesahan diperlukan.
-
FUNGSI: Memerlukan kunci khusus fungsi.
-
ADMIN: Memerlukan kunci peringkat pentadbir.
2. Pencetus Pemasa
- Melaksanakan fungsi berdasarkan jadual.
- Ungkapan Cron digunakan untuk penjadualan.
- Contoh:
import azure.functions as func
import datetime
import json
import logging
app = func.FunctionApp()
@app.timer_trigger(schedule="0 */5 * * * *", arg_name="myTimer", run_on_startup=False, use_monitor=False)
def timer_trigger(myTimer: func.TimerRequest) -> None:
if myTimer.past_due:
logging.info('The timer is past due!')
logging.info('Python timer trigger function executed.')
Salin selepas log masuk
Salin selepas log masuk
Parameter:
-
jadual: Mentakrifkan jadual menggunakan ungkapan CRON. Di sini, 0 */5 * * * * menentukan fungsi berjalan setiap 5 minit bermula pada saat ke-0.
-
arg_name: Nama hujah yang dihantar ke fungsi, mewakili objek TimerRequest.
-
run_on_startup: Jika ditetapkan kepada Benar, fungsi tersebut dilaksanakan serta-merta apabila apl dimulakan. Lalai ialah Palsu.
-
use_monitor: Menentukan sama ada Azure harus memantau pelaksanaan jadual yang terlepas. Jika Benar, Azure memastikan pelaksanaan yang terlepas dicuba semula. Lalai adalah Benar. Dalam contoh ini, ia ditetapkan kepada Palsu.
3. Pencetus Blob
- Membalas kepada perubahan dalam Storan Azure Blob (cth., muat naik fail).
- Contoh:
import azure.functions as func
import datetime
import json
import logging
app = func.FunctionApp()
@app.blob_trigger(arg_name="myblob", path="blobname", connection="BlobStorageConnectionString")
def BlobTrigger(myblob: func.InputStream):
logging.info(f"Python blob trigger function processed blob"
f"Name: {myblob.name}"
f"Blob Size: {myblob.length} bytes")
Salin selepas log masuk
Salin selepas log masuk
Parameter:
-
arg_name: Menentukan nama hujah dalam fungsi yang mewakili data gumpalan. Inilah myblob.
-
laluan: Laluan dalam bekas Blob Storage yang fungsi mendengar. Dalam contoh ini, ia adalah blobname.
-
sambungan: Merujuk kepada nama tetapan aplikasi yang mengandungi rentetan sambungan untuk akaun Blob Storage. Ini ialah BlobStorageConnectionString.
4. Pencetus Baris
- Dicetuskan oleh mesej yang ditambahkan pada Barisan Storan Azure.
- Contoh:
import azure.functions as func
import datetime
import json
import logging
app = func.FunctionApp()
@app.route(route="http_trigger", auth_level=func.AuthLevel.ANONYMOUS)
def http_trigger(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
return func.HttpResponse("Hello world from HTTP trigger")
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Parameter:
-
arg_name: Menentukan nama argumen yang mewakili mesej baris gilir dalam fungsi. Di sini, ia adalah azqueue.
-
queue_name: Nama Baris Storan Azure yang fungsi mendengar. Dalam kes ini, ia adalah nama gilir.
-
sambungan: Merujuk kepada tetapan aplikasi yang mengandungi rentetan sambungan untuk Barisan Storan Azure. Ini ialah QueueConnectionString.
5. Pencetus EventHub
- Dicetuskan oleh acara yang dihantar ke Hab Acara Azure.
- Contoh:
import azure.functions as func
import datetime
import json
import logging
app = func.FunctionApp()
@app.timer_trigger(schedule="0 */5 * * * *", arg_name="myTimer", run_on_startup=False, use_monitor=False)
def timer_trigger(myTimer: func.TimerRequest) -> None:
if myTimer.past_due:
logging.info('The timer is past due!')
logging.info('Python timer trigger function executed.')
Salin selepas log masuk
Salin selepas log masuk
Parameter:
-
arg_name: Ini menentukan nama parameter yang akan menerima data peristiwa dalam fungsi anda. Dalam kes ini, azeventhub akan menjadi pembolehubah yang mewakili EventHubEvent masuk.
-
event_hub_name: Ini menandakan nama Event Hub yang fungsi sedang mendengar. Gantikan nama eventhub dengan nama sebenar Hab Acara anda.
-
sambungan: Ini merujuk kepada nama tetapan aplikasi yang mengandungi rentetan sambungan untuk Hab Acara. Pastikan tetapan Apl Fungsi Azure anda termasuk entri bernama EventHubConnectionString dengan nilai rentetan sambungan yang sesuai.
6. Pencetus Barisan Servis
- Dicetuskan oleh mesej yang ditambahkan pada baris gilir Bas Perkhidmatan Azure.
- Contoh:
import azure.functions as func
import datetime
import json
import logging
app = func.FunctionApp()
@app.blob_trigger(arg_name="myblob", path="blobname", connection="BlobStorageConnectionString")
def BlobTrigger(myblob: func.InputStream):
logging.info(f"Python blob trigger function processed blob"
f"Name: {myblob.name}"
f"Blob Size: {myblob.length} bytes")
Salin selepas log masuk
Salin selepas log masuk
Parameter:
-
arg_name: Ini menentukan nama parameter yang akan menerima data mesej dalam fungsi anda. Dalam kes ini, azservicebus akan menjadi pembolehubah yang mewakili ServiceBusMessage yang masuk.
-
nama_baris: Ini menandakan nama baris gilir Bas Perkhidmatan yang sedang didengari oleh fungsi itu. Gantikan servicebusqueuename dengan nama sebenar baris gilir Bas Perkhidmatan anda.
-
sambungan: Ini merujuk kepada nama tetapan aplikasi yang mengandungi rentetan sambungan untuk Bas Perkhidmatan. Pastikan tetapan Apl Fungsi Azure anda termasuk entri bernama ServiceBusConnectionString dengan nilai rentetan sambungan yang sesuai.
7. Pencetus Topik ServiceBus
- Dicetuskan oleh mesej yang diterbitkan pada topik Bas Perkhidmatan Azure.
- Contoh:
import azure.functions as func
import datetime
import json
import logging
app = func.FunctionApp()
@app.route(route="http_trigger", auth_level=func.AuthLevel.ANONYMOUS)
def http_trigger(req: func.HttpRequest) -> func.HttpResponse:
logging.info('Python HTTP trigger function processed a request.')
return func.HttpResponse("Hello world from HTTP trigger")
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk
Parameter:
-
arg_name: Menentukan nama hujah yang mewakili mesej Bas Perkhidmatan dalam fungsi. Ini ialah azservicebus.
-
subscription_name: Nama langganan Bas Perkhidmatan yang didengari oleh pencetus.
-
nama_topik: Nama topik Bas Perkhidmatan yang didengari oleh pencetus. Dalam contoh ini, ia ialah servicebustopicname.
-
sambungan: Merujuk kepada tetapan aplikasi yang mengandungi rentetan sambungan untuk ruang nama Bas Perkhidmatan Azure. Ini ialah ServiceBusConnectionString.
Pencetus Lain
-
Pencetus DB Cosmos: Membalas perubahan (sisipan dan kemas kini) dalam pangkalan data DB Azure Cosmos dengan menggunakan mekanisme suapan perubahan.
-
Pengikatan Output Terbitan Dapr: Membenarkan fungsi untuk menerbitkan mesej kepada topik Dapr semasa pelaksanaan, memudahkan komunikasi antara perkhidmatan mikro.
-
Pencetus Invokasi Perkhidmatan Dapr: Membolehkan fungsi digunakan secara langsung oleh perkhidmatan lain yang didayakan Dapr, menyokong komunikasi perkhidmatan ke perkhidmatan.
-
Pencetus Topik Dapr: Melaksanakan fungsi sebagai tindak balas kepada mesej yang diterbitkan pada topik tertentu melalui corak pemesejan terbitkan-langganan Dapr.
-
Pencetus Grid Peristiwa: Mengaktifkan fungsi apabila acara dihantar ke topik Grid Peristiwa Azure, membenarkan seni bina dipacu peristiwa reaktif.
Atas ialah kandungan terperinci Fungsi Azure dengan Python: Pencetus. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!