Heim >Backend-Entwicklung >Python-Tutorial >Azure-Funktionen mit Python: Trigger

Azure-Funktionen mit Python: Trigger

Susan Sarandon
Susan SarandonOriginal
2025-01-03 02:57:39677Durchsuche

Azure Functions with Python: Triggers

Python-Entwickler können Azure Functions verwenden, um schlanke, skalierbare und effiziente serverlose Anwendungen zu erstellen. In diesem Beitrag konzentrieren wir uns auf Auslöser.

Was sind Trigger in Azure Functions?

Trigger sind die Grundlage von Azure Functions. Sie bestimmen, wie eine Funktion aufgerufen wird. Jede Funktion muss genau einen Trigger haben, und der Triggertyp bestimmt die für die Funktion verfügbare Datennutzlast. Azure unterstützt verschiedene Auslöser, darunter:

1​. HTTP-Trigger

  • Ermöglicht den Aufruf von Funktionen über HTTP-Anfragen.
  • Nützlich zum Erstellen von APIs oder zum Reagieren auf Webhooks.
  • Beispiel:
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")

Parameter:

  • route: Gibt den URL-Pfad an, auf den der HTTP-Trigger antwortet. In diesem Fall ist die Funktion unter /api/http_trigger.
  • zugänglich
  • auth_level: Bestimmt die Authentifizierungsebene für die Funktion. Zu den Optionen gehören:
    • ANONYM: Keine Authentifizierung erforderlich.
    • FUNKTION: Erfordert eine funktionsspezifische Taste.
    • ADMIN: Erfordert einen Schlüssel auf Administratorebene.

2​. Timer-Trigger

  • Führt Funktionen basierend auf einem Zeitplan aus.
  • Cron-Ausdrücke werden für die Planung verwendet.
  • Beispiel:
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.')

Parameter:

  • Zeitplan: Definiert den Zeitplan mithilfe eines CRON-Ausdrucks. Hier gibt 0 */5 * * * * an, dass die Funktion ab der 0. Sekunde alle 5 Minuten ausgeführt wird.
  • arg_name: Der Name des an die Funktion übergebenen Arguments, das das TimerRequest-Objekt darstellt.
  • run_on_startup: Wenn auf True gesetzt, wird die Funktion sofort ausgeführt, wenn die App gestartet wird. Der Standardwert ist False.
  • use_monitor: Legt fest, ob Azure auf verpasste Zeitplanausführungen überwachen soll. Bei „True“ stellt Azure sicher, dass verpasste Ausführungen wiederholt werden. Der Standardwert ist True. In diesem Beispiel ist es auf False gesetzt.

3​. Blob-Trigger

  • Reagiert auf Änderungen in Azure Blob Storage (z. B. Datei-Uploads).
  • Beispiel:
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")

Parameter:

  • arg_name: Gibt den Namen des Arguments in der Funktion an, das die Blob-Daten darstellt. Hier ist es myblob.
  • Pfad: Der Pfad im Blob Storage-Container, den die Funktion abhört. In diesem Beispiel ist es blobname.
  • Verbindung: Bezieht sich auf den Namen der Anwendungseinstellung, die die Verbindungszeichenfolge für das Blob Storage-Konto enthält. Hier ist es BlobStorageConnectionString.

4​. Warteschlangenauslöser

  • Ausgelöst durch Nachrichten, die zu Azure Storage-Warteschlangen hinzugefügt werden.
  • Beispiel:
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")

Parameter:

  • arg_name: Gibt den Namen des Arguments an, das die Warteschlangennachricht in der Funktion darstellt. Hier ist es azqueue.
  • queue_name: Der Name der Azure Storage-Warteschlange, auf die die Funktion lauscht. In diesem Fall ist es queuename.
  • Verbindung: Bezieht sich auf die Anwendungseinstellung, die die Verbindungszeichenfolge für die Azure Storage-Warteschlange enthält. Hier ist es QueueConnectionString.

5​. EventHub-Trigger

  • Ausgelöst durch Ereignisse, die an einen Azure Event Hub gesendet werden.
  • Beispiel:
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.')

Parameter:

  • arg_name: Dies gibt den Namen des Parameters an, der die Ereignisdaten in Ihrer Funktion empfängt. In diesem Fall ist azeventhub die Variable, die das eingehende EventHubEvent darstellt.
  • event_hub_name: Dies gibt den Namen des Event Hubs an, den die Funktion überwacht. Ersetzen Sie eventhubname durch den tatsächlichen Namen Ihres Event Hubs.
  • Verbindung: Dies bezieht sich auf den Namen der Anwendungseinstellung, die die Verbindungszeichenfolge für den Event Hub enthält. Stellen Sie sicher, dass die Einstellungen Ihrer Azure Function App einen Eintrag namens EventHubConnectionString mit dem entsprechenden Verbindungszeichenfolgenwert enthalten.

6​. ServiceBus-Warteschlangenauslöser

  • Ausgelöst durch Nachrichten, die einer Azure Service Bus-Warteschlange hinzugefügt wurden.
  • Beispiel:
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")

Parameter:

  • arg_name: Dies gibt den Namen des Parameters an, der die Nachrichtendaten in Ihrer Funktion empfängt. In diesem Fall ist azservicebus die Variable, die die eingehende ServiceBusMessage darstellt.
  • queue_name: Dies gibt den Namen der Service Bus-Warteschlange an, die die Funktion überwacht. Ersetzen Sie servicebusqueuename durch den tatsächlichen Namen Ihrer Service Bus-Warteschlange.
  • Verbindung: Dies bezieht sich auf den Namen der Anwendungseinstellung, die die Verbindungszeichenfolge für den Service Bus enthält. Stellen Sie sicher, dass die Einstellungen Ihrer Azure Function App einen Eintrag namens ServiceBusConnectionString mit dem entsprechenden Verbindungszeichenfolgenwert enthalten.

7​. ServiceBus-Themenauslöser

  • Ausgelöst durch Nachrichten, die in einem Azure Service Bus-Thema veröffentlicht wurden.
  • Beispiel:
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")

Parameter:

  • arg_name: Gibt den Namen des Arguments an, das die Service Bus-Nachricht in der Funktion darstellt. Hier ist es azservicebus.
  • subscription_name: Der Name des Service Bus-Abonnements, auf das der Trigger lauscht.
  • topic_name: Der Name des Service Bus-Themas, auf das der Trigger lauscht. In diesem Beispiel ist es servicebustopicname.
  • Verbindung: Bezieht sich auf die Anwendungseinstellung, die die Verbindungszeichenfolge für den Azure Service Bus-Namespace enthält. Hier ist es ServiceBusConnectionString.

Andere Auslöser

  • Cosmos DB-Trigger: Reagiert auf Änderungen (Einfügungen und Aktualisierungen) in einer Azure Cosmos DB-Datenbank unter Verwendung des Änderungsfeedmechanismus.
  • Dapr Publish Output Binding: Ermöglicht Funktionen, während der Ausführung Nachrichten in einem Dapr-Thema zu veröffentlichen, wodurch die Kommunikation zwischen Microservices erleichtert wird.
  • Dapr-Dienstaufrufauslöser: Ermöglicht den direkten Aufruf von Funktionen durch andere Dapr-fähige Dienste und unterstützt so die Dienst-zu-Dienst-Kommunikation.
  • Dapr-Themenauslöser: Führt Funktionen als Reaktion auf Nachrichten aus, die über das Publish-Subscribe-Nachrichtenmuster von Dapr zu einem bestimmten Thema veröffentlicht werden.
  • Event Grid-Trigger: Aktiviert Funktionen, wenn Ereignisse an ein Azure Event Grid-Thema gesendet werden, was reaktive ereignisgesteuerte Architekturen ermöglicht.

Das obige ist der detaillierte Inhalt vonAzure-Funktionen mit Python: Trigger. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:arange in PyTorchNächster Artikel:arange in PyTorch