Scénario : Envoi de messages de file d'attente à une fonction
Intégrer la file d'attente aux fonctions à l'aide du centre de connecteurs.
Ce scénario consiste à créer une fonction, puis à référencer cette fonction en tant que cible dans un connecteur (Connector Hub) pour recevoir et traiter des messages à partir de files d'attente.
Les données utiles reçues par la fonction ne contiennent que des messages de la file d'attente.
Pour un tutoriel connexe, voir Utiliser le service des fonctions pour OCI et la file d'attente pour OCI pour autoriser les capacités d'utilisateur sans exposer le privilège d'administration aux approbateurs.
Pour obtenir de l'aide concernant le dépannage, voir Dépannage des connecteurs.
Politique GIA requise
Si vous êtes membre du groupe Administrateurs, vous avez déjà l'accès requis pour exécuter ce scénario. Sinon, vous devez accéder au service de fonctions .
Le flux de travail de création du connecteur inclut une politique par défaut, si nécessaire, afin de fournir l'autorisation d'écriture sur le service cible. Pour en savoir plus sur les politiques, voir Aperçu des politiques IAM.
Traitement des erreurs lors du traitement des files d'attente
Dans le contexte des messages de file d'attente envoyés à des fonctions, les échecs partiels lors du traitement des messages d'un lot ne sont pas pris en charge.
Lorsqu'une fonction qui traite un lot de messages à partir d'une file d'attente rencontre une erreur, tous les messages de ce lot redeviennent visibles dans la file d'attente, y compris les messages que la fonction a traités avec succès. Par conséquent, un message peut être traité par la fonction plusieurs fois. Comme pour toute cible, le connecteur continue de réessayer indéfiniment jusqu'à ce que la cible de la fonction réussisse. Pour plus d'informations, voir Détails de la diffusion.
Si un échec se produit lors du traitement d'un lot de messages, le nombre de messages transmis est toujours augmenté. Si le nombre de messages transmis atteint le maximum défini au niveau de la file d'attente, le message est envoyé à la file d'attente des messages non distribués. Pour plus d'informations, voir Nombre de transmissions.
Pour empêcher le retraitement des messages, rendez votre fonction idempotente.
Définition de la file d'attente et de la fonction
Avant de créer le connecteur (Centre de connecteurs) , vous devez configurer une file d'attente et une fonction pour recevoir les données de la file d'attente.
Pour obtenir des instructions sur la file d'attente, voir Création d'une file d'attente.
Pour obtenir des instructions sur la fonction, voir :
Le processus de création commence et sa progression est affichée. À la fin, la page des détails du connecteur s'ouvre. Exécutez l'opération CreateServiceConnector pour créer le connecteur.
Exemple de demande :
POST /20200909/serviceConnectors Host: service-connector-hub.us-phoenix-1.oraclecloud.com <authorization and other headers> { "displayName": "My Queue to Function Connector", "compartmentId": "<compartment_OCID>", "description": "My connector description", "source": { "kind": "plugin", "pluginName": "QueueSource", "configMap": { "queueId": "<queue_OCID>" } }, "target": { "kind": "functions", "functionId": "<function_OCID>", "batchSizeInKbs": "5000", "batchSizeInNum": "10", "batchTimeInSec": "60" } }
Vérifier et résoudre les appels
Pour vérifier et dépanner les appels sur le service des fonctions, voir Stockage et consultation des journaux de fonctions.
Confirmer que le nouveau connecteur déplace les données
Après avoir créé le connecteur, vérifiez qu'il déplace les données.
- Activez les journaux pour le connecteur afin d'obtenir des détails sur le flux de données.
- Vérifiez les résultats attendus pour le service cible.
La confirmation du déplacement des données vous permet d'éviter une désactivation automatique, qui se produit en cas de défaillance prolongée d'un connecteur.