Maison > développement back-end > Tutoriel Python > Azure Functions avec Python : déclencheurs

Azure Functions avec Python : déclencheurs

Susan Sarandon
Libérer: 2025-01-03 02:57:39
original
671 Les gens l'ont consulté

Azure Functions with Python: Triggers

Les développeurs Python peuvent utiliser Azure Functions pour créer des applications sans serveur légères, évolutives et efficaces. Dans cet article, nous nous concentrerons sur les déclencheurs.

Que sont les déclencheurs dans Azure Functions ?

Les déclencheurs constituent le fondement d’Azure Functions. Ils déterminent comment une fonction est invoquée. Chaque fonction doit avoir exactement un déclencheur, et le type de déclencheur dicte la charge utile de données disponible pour la fonction. Azure prend en charge divers déclencheurs, notamment :

1​. Déclencheur HTTP

  • Permet d'invoquer des fonctions via des requêtes HTTP.
  • Utile pour créer des API ou répondre aux webhooks.
  • Exemple :
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")
Copier après la connexion
Copier après la connexion
Copier après la connexion

Paramètres :

  • route : Spécifie le chemin de l'URL auquel le déclencheur HTTP répondra. Dans ce cas, la fonction est accessible sur /api/http_trigger.
  • auth_level : Détermine le niveau d'authentification de la fonction. Les options incluent :
    • ANONYME : Aucune authentification requise.
    • FONCTION : Nécessite une clé spécifique à la fonction.
    • ADMIN : nécessite une clé de niveau administrateur.

2​. Déclencheur de minuterie

  • Exécute des fonctions en fonction d'un calendrier.
  • Les expressions Cron sont utilisées pour la planification.
  • Exemple :
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.')
Copier après la connexion
Copier après la connexion

Paramètres :

  • schedule : Définit le planning à l'aide d'une expression CRON. Ici, 0 */5 * * * * spécifie que la fonction s'exécute toutes les 5 minutes à partir de la 0ème seconde.
  • arg_name : Le nom de l'argument passé à la fonction, représentant l'objet TimerRequest.
  • run_on_startup : Si elle est définie sur True, la fonction s'exécute immédiatement au démarrage de l'application. La valeur par défaut est False.
  • use_monitor : Détermine si Azure doit surveiller les exécutions planifiées manquées. Si True, Azure garantit que les exécutions manquées sont retentées. La valeur par défaut est True. Dans cet exemple, il est défini sur False.

3​. Déclencheur de gouttes

  • Répond aux modifications dans Azure Blob Storage (par exemple, téléchargements de fichiers).
  • Exemple :
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")
Copier après la connexion
Copier après la connexion

Paramètres :

  • arg_name : Spécifie le nom de l'argument dans la fonction qui représente les données blob. Ici c'est myblob.
  • path : Le chemin dans le conteneur Blob Storage que la fonction écoute. Dans cet exemple, il s'agit de blobname.
  • connexion : Fait référence au nom du paramètre d'application contenant la chaîne de connexion pour le compte Blob Storage. Ici, c'est BlobStorageConnectionString.

4​. Déclencheur de file d'attente

  • Déclenché par les messages ajoutés aux files d'attente de stockage Azure.
  • Exemple :
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")
Copier après la connexion
Copier après la connexion
Copier après la connexion

Paramètres :

  • arg_name : Spécifie le nom de l'argument qui représente le message de file d'attente dans la fonction. Ici, c'est azqueue.
  • queue_name : nom de la file d'attente de stockage Azure que la fonction écoute. Dans ce cas, il s'agit du nom de la file d'attente.
  • connexion : fait référence au paramètre d'application contenant la chaîne de connexion pour la file d'attente de stockage Azure. Ici, c'est QueueConnectionString.

5​. Déclencheur EventHub

  • Déclenché par des événements envoyés à un Azure Event Hub.
  • Exemple :
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.')
Copier après la connexion
Copier après la connexion

Paramètres :

  • arg_name : Ceci spécifie le nom du paramètre qui recevra les données d'événement dans votre fonction. Dans ce cas, azeventhub sera la variable représentant l'EventHubEvent entrant.
  • event_hub_name : Ceci indique le nom de l'Event Hub que la fonction écoute. Remplacez eventhubname par le nom réel de votre Event Hub.
  • connexion : Il s'agit du nom du paramètre d'application qui contient la chaîne de connexion pour Event Hub. Assurez-vous que les paramètres de votre application Azure Function incluent une entrée nommée EventHubConnectionString avec la valeur de chaîne de connexion appropriée.

6​. Déclencheur de file d’attente ServiceBus

  • Déclenché par des messages ajoutés à une file d'attente Azure Service Bus.
  • Exemple :
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")
Copier après la connexion
Copier après la connexion

Paramètres :

  • arg_name : Ceci spécifie le nom du paramètre qui recevra les données du message dans votre fonction. Dans ce cas, azservicebus sera la variable représentant le ServiceBusMessage entrant.
  • queue_name : Ceci indique le nom de la file d'attente Service Bus que la fonction écoute. Remplacez servicebusqueuename par le nom réel de votre file d'attente Service Bus.
  • connexion : Il s'agit du nom du paramètre d'application qui contient la chaîne de connexion pour le Service Bus. Assurez-vous que les paramètres de votre application Azure Function incluent une entrée nommée ServiceBusConnectionString avec la valeur de chaîne de connexion appropriée.

7​. Déclencheur de sujet ServiceBus

  • Déclenché par des messages publiés dans un sujet Azure Service Bus.
  • Exemple :
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")
Copier après la connexion
Copier après la connexion
Copier après la connexion

Paramètres :

  • arg_name : Spécifie le nom de l'argument qui représente le message Service Bus dans la fonction. Ici, c'est azservicebus.
  • subscription_name : nom de l'abonnement Service Bus écouté par le déclencheur.
  • topic_name : nom de la rubrique Service Bus écoutée par le déclencheur. Dans cet exemple, il s'agit de servicebustopicname.
  • connexion : fait référence au paramètre d'application contenant la chaîne de connexion pour l'espace de noms Azure Service Bus. Ici, il s'agit de ServiceBusConnectionString.

Autres déclencheurs

  • Déclencheur Cosmos DB : Répond aux modifications (insertions et mises à jour) dans une base de données Azure Cosmos DB en utilisant le mécanisme de flux de modification.
  • Dapr Publish Output Binding : Permet aux fonctions de publier des messages sur un sujet Dapr pendant l'exécution, facilitant ainsi la communication entre les microservices.
  • Déclencheur d'invocation du service Dapr : Permet aux fonctions d'être invoquées directement par d'autres services compatibles Dapr, prenant en charge la communication de service à service.
  • Dapr Topic Trigger : Exécute des fonctions en réponse aux messages publiés sur un sujet spécifique via le modèle de messagerie de publication-abonnement de Dapr.
  • Event Grid Trigger : Active les fonctions lorsque des événements sont envoyés à un sujet Azure Event Grid, permettant ainsi des architectures réactives basées sur les événements.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

source:dev.to
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal