Szenario: Queue-Nachrichten an eine Funktion senden
Queue mit Funktionen über Connector Hub integrieren
In diesem Szenario wird eine Funktion erstellt und dann diese Funktion als Ziel in einem Connector (Connector Hub) referenziert, um Nachrichten aus Queues zu empfangen und zu verarbeiten.
Die von der Funktion empfangene Payload enthält nur Nachrichten aus der Queue.
Ein zugehöriges Tutorial finden Sie unter Benutzerfunktionen mit OCI Functions und OCI Queue autorisieren, ohne Genehmigern Admin-Berechtigung bereitzustellen.
Hilfe zur Fehlerbehebung finden Sie unter Fehlerbehebung bei Connectors.
Erforderliche IAM-Policy
Wenn Sie Mitglied der Administratorengruppe sind, besitzen Sie bereits den erforderlichen Zugriff zur Ausführung dieses Szenarios. Andernfalls benötigen Sie Zugriff auf Functions .
Der Workflow zum Erstellen des Connectors umfasst eine Standard-Policy, die bei Bedarf Berechtigungen zum Schreiben in den Zielservice erteilen. Informationen zu Policys finden Sie unter Überblick über IAM-Policys.
Fehlerbehandlung bei der Verarbeitung von Warteschlangen
Im Kontext von Queue-Nachrichten, die an Funktionen gesendet werden, werden teilweise Fehler bei der Verarbeitung von Nachrichten in einem Batch nicht unterstützt.
Wenn eine Funktion, die einen Batch von Nachrichten aus einer Queue verarbeitet, auf einen Fehler stößt, werden alle Nachrichten in diesem Batch wieder in der Queue angezeigt, einschließlich Meldungen, die von der Funktion erfolgreich verarbeitet wurden. Daher könnte eine Nachricht von der Funktion mehrmals verarbeitet werden. Wie bei jedem Ziel wiederholt sich der Connector unbegrenzt, bis das Funktionsziel erfolgreich ist. Weitere Informationen finden Sie unter Auslieferungsdetails.
Wenn bei der Verarbeitung eines Nachrichtenbatches ein Fehler auftritt, wird die Zustellungsanzahl für diese Nachrichten weiterhin erhöht. Wenn die Zustellungsanzahl für eine Nachricht den auf Queueebene definierten Höchstwert erreicht, wird die Nachricht an die Dead-Letter Queue gesendet. Weitere Informationen finden Sie unter Zustellungsanzahl.
Um die erneute Verarbeitung von Nachrichten zu verhindern, machen Sie Ihre Funktion idempotent.
Queue und Funktion einrichten
Bevor Sie den Connector (Connector Hub) erstellen können, müssen Sie eine Queue und eine Funktion einrichten, um Daten aus der Queue zu empfangen.
Anweisungen zu Warteschlangen finden Sie unter Erstellen einer Warteschlange.
Funktionsanweisungen finden Sie im Folgenden:
Der Erstellungsprozess beginnt, und sein Fortschritt wird angezeigt. Nach Abschluss wird die Detailseite des Connectors geöffnet. Führen Sie den Vorgang CreateServiceConnector aus, um den Connector zu erstellen.
Beispielanforderung:
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" } }
Aufrufe prüfen und Fehler beheben
Informationen zur Prüfung und Fehlerbehebung von Aufrufen im Functions-Service finden Sie unter Funktionslogs speichern und anzeigen.
Bestätigen, dass der neue Connector Daten verschiebt
Nachdem Sie den Connector erstellt haben, bestätigen Sie, dass Daten verschoben werden.
- Aktivieren Sie Logs, damit der Connector Details zum Datenfluss abrufen kann.
- Auf erwartete Ergebnisse im Zielservice prüfen.
Wenn Sie bestätigen, dass Daten verschoben werden, können Sie eine automatische Deaktivierung vermeiden, die auftritt, wenn ein Connector längere Zeit ausfällt.