Warum ist mein Azure Python V2 -Funktion App Event Hub -Trigger nicht aus?Python

Python-Programme
Anonymous
 Warum ist mein Azure Python V2 -Funktion App Event Hub -Trigger nicht aus?

Post by Anonymous »

Wir versuchen, eine einfache Funktions -App zu erstellen (siehe unten), aber die Ereignisse, die in den Ereigniszentrum "Trigger" geschrieben wurden, starten nie die Funktion. Das Ziel ist es, eine "Premium" V2 Python -Funktions -App zu verwenden, die auf einer "elastischen Dienst -App" ausgeführt wird, die sowohl "event_hub_message_trigger" als auch "event_hub_output" verwendet ein anderer (Mieter_Two_EH unten). Alle Komponenten sind privat (kein öffentliches Netzwerkzugriff) mit privaten Endpunkten konfiguriert. Hier ist der Code: < /p>
import datetime
import json
import azure.functions as func
import logging

app = func.FunctionApp()

@app.function_name(name="event_hub_forwarder")
@app.event_hub_output(arg_name="outputEvent", event_hub_name="tenant_two_eventhub", connection="TENANT_TWO_EH")
@app.event_hub_message_trigger(arg_name="inputEvent", consumer_group="forwarder", event_hub_name="tenant_one_eventhub", connection="TENANT_ONE_EH")
def eventhub_function(inputEvent: func.EventHubEvent, outputEvent: func.Out[str]):
logging.info('Python EventHub trigger processed an event: %s with enqueued time: %s', inputEvent.get_body().decode('utf-8'), str(inputEvent.enqueued_time))
input_dict = json.loads(inputEvent.get_body())
now = datetime.datetime.now()
input_dict['time_processed'] = str(now)

outputEvent.set(json.dumps(input_dict))
< /code>
Die Funktion läuft wie erwartet lokal mit einem EventHub -Emulator und einem Azurite -Speicher -Emulator in VS -Code. Mit einem VM (über Bastion) kann ich die Funktion über die CLI in die Cloud hochladen (kann das Portal nicht verwenden, da kein öffentlicher Netzwerkzugriff und der VM keinen Desktop haben). Auf der VM in der Wolke kann ich: < /p>

die Funktion über Curl (Verwendung: this) auslösen - Dies funktioniert wie erwartet, der JSON wird aufgenommen, Das Prozessfeld wird angehängt und das Ereignis wird auf den zweiten Mieter -Ereignis -Hub weitergegeben. < /li>
Verwenden Hubs (mit derselben Verbindungszeichenfolge, die von der Funktions -App verwendet wird. So teste ich auch die Funktionalität (Python Schreiben Sie an EH1 -> Funktion App Auslöser und schreibt an EH2 -> Python Read aus EH2) < /li>
< /ul>
Ich konnte einige Protokolle (sowohl aus dem CLI-Protokollstrom als auch vom SSHing in den Container über "AZ WebApp-Remote-Konnection") finden, die mir die Funktion ausführen, die mir gegeben wurde Ein paar Hinweise: < /p>

Ich glaube li>
< /ol>

2025-02-13t14:03:34.042 [Informationen] Abfragen von Partitionsinformationen für 10 Partitionen.
2025-02 -13t14: 03: 34.262 [Information] Zielarbeiteranzahl für Funktion 'host.functions.event_hub_forwarder' ist '0' (eventHubname = 'Tenant_one_eventhub', eventCount = '0', Concurrency = '10 ', PartitionCount = '10'))))). . = "2">
Es gibt einen wiederholenden 403 -Fehler von microsoft.azure.webjobs.host.scale.scalemanager Seien Sie damit verwandt. Der Trigger sieht keine der tatsächlichen Ereignisse, so dass es nie so skaliert wird, dass es etwas verarbeitet (warum der Zielarbeiter auch bei 0 bleibt). Ich habe dafür gesorgt, dass die Verbrauchergruppe existiert ("Forwarder" im obigen Code) und kann mit dem Python -Code (wie oben erwähnt) gut lesen. Dieses hier? Gerne stelle ich alle zusätzlichen Informationen/Erläuterungen an.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post