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

Azure Functions avec Python : déclencheurs

Jan 03, 2025 am 02:57 AM

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!

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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Comment éviter d'être détecté par le navigateur lors de l'utilisation de Fiddler partout pour la lecture de l'homme au milieu? Apr 02, 2025 am 07:15 AM

Comment éviter d'être détecté lors de l'utilisation de FiddlereVerywhere pour les lectures d'homme dans le milieu lorsque vous utilisez FiddlereVerywhere ...

Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Comment enseigner les bases de la programmation novice en informatique dans le projet et les méthodes axées sur les problèmes dans les 10 heures? Apr 02, 2025 am 07:18 AM

Comment enseigner les bases de la programmation novice en informatique dans les 10 heures? Si vous n'avez que 10 heures pour enseigner à l'informatique novice des connaissances en programmation, que choisissez-vous d'enseigner ...

Comment obtenir des données d'information en contournant le mécanisme anti-frawler d'Investing.com? Comment obtenir des données d'information en contournant le mécanisme anti-frawler d'Investing.com? Apr 02, 2025 am 07:03 AM

Comprendre la stratégie anti-rampe d'investissement.com, Beaucoup de gens essaient souvent de ramper les données d'actualités sur Investing.com (https://cn.investing.com/news/latest-news) ...

Python 3.6 Chargement du fichier de cornichon MODULENOTFOUNDERROR: Que dois-je faire si je charge le fichier de cornichon '__builtin__'? Python 3.6 Chargement du fichier de cornichon MODULENOTFOUNDERROR: Que dois-je faire si je charge le fichier de cornichon '__builtin__'? Apr 02, 2025 am 06:27 AM

Chargement du fichier de cornichon dans Python 3.6 Erreur d'environnement: modulenotFounonError: NomoduLenamed ...

Quelle est la raison pour laquelle les fichiers de pipeline ne peuvent pas être écrits lors de l'utilisation du robot Scapy? Quelle est la raison pour laquelle les fichiers de pipeline ne peuvent pas être écrits lors de l'utilisation du robot Scapy? Apr 02, 2025 am 06:45 AM

Discussion sur les raisons pour lesquelles les fichiers de pipelines ne peuvent pas être écrits lors de l'utilisation de robots scapisnels lors de l'apprentissage et de l'utilisation de Crawlers scapides pour un stockage de données persistant, vous pouvez rencontrer des fichiers de pipeline ...

See all articles