Azure / Azure/azure-functions-java-library

Local deployment of Azure Service Bus Queue Trigger getting message as null

Aperta
#142 2 commenti 0 reazioni 0 assegnatari Vedi su GitHub
area:java-functions
Lingua principale
Java
Stelle
45
Fork
49
Metriche di merge delle PR
Nessuna PR unita negli ultimi 30g

Descrizione

When I deploy an Azure Function locally using Spring Boot and spring-cloud-function-adapter-azure library. I was able to build, package and deploy the Function Application locally.
I have installed:
1) Azure CLI version 2.16
2) Azure Function CLI (func) version 3.0.31
3) .NET SDK 3.1.404
4) Also installed Azurite V3 Visual Studio Code extension for local blob storage connection string

I have executed func settings add AzureWebJobsStorage "useDevelopmentStorage=$true" to utilize local blob storage, AzureServiceBusConnection connecction string as "Endpoint-sb://my-service-bus-server.servicebus.windows.net/;SharedAccessKeyName=Root;SharedAccessKey=xyz;, FUNCTIONS_EXTENSION_VERSION as 2, FUNCTIONS_WORKER_RUNTIME as java, MAIN_CLASS as Spring Boot Application Main Classname.

The Function Application starts properly I have deployed 2 functions (1) HttpTrigger and (2) ServiceBusQueueTrigger. HttpTrigger works properly but when I publish a message to the Queue to which I have configured ServiceBusQueueTrigger the trigger gets executed properly but the message is always null. This is the stack-trace as given below:

> [2021-01-08T08:04:33.326Z] 2021-01-08 13:34:33.308 INFO 4764 --- [pool-2-thread-3] AbstractSpringFunctionAdapterInitializer : Initializing: class com.bestminds.azurefunction.AzureServiceBusSampleAzureFunction
[2021-01-08T08:04:33.328Z] Handler processing a request for: orders
[2021-01-08T08:04:33.351Z] =========|_|==============|___/=/_/_/_/
[2021-01-08T08:04:33.352Z] :: Spring Boot :: (v2.2.9.RELEASE)
[2021-01-08T08:04:33.354Z] 2021-01-08 13:34:33.340 INFO 4764 --- [pool-2-thread-3] o.s.boot.SpringApplication : Starting application on XYZIND115914 with PID 4764 (C:\spring-boot-azure-function-showcase\target\azure-functions\bestminds\azure-functions-0.0.1-SNAPSHOT.jar started by JohnDoe in C:\spring-boot-azure-function-showcase\target\azure-functions\AzureServiceBusSampleAzureFunction)
[2021-01-08T08:04:33.360Z] 2021-01-08 13:34:33.340 INFO 4764 --- [pool-2-thread-3] o.s.boot.SpringApplication : No active profile set, falling back to default profiles: default
[2021-01-08T08:04:33.697Z] 2021-01-08 13:34:33.689 INFO 4764 --- [pool-2-thread-3] o.s.boot.SpringApplication : Started application in 0.369 seconds (JVM running for 287.696)
[2021-01-08T08:14:58.013Z] Executing 'Functions.orders' (Reason='(null)', Id=0ad0ec7c-917c-4d07-9700-5ff5376a89f4)
[2021-01-08T08:14:58.015Z] Trigger Details: MessageId: ID:7aada22d-6fd4-4a8b-b802-65738b39ef6f:1:1:1-1, SequenceNumber: 2, DeliveryCount: 1, EnqueuedTimeUtc: 2021-01-08T08:14:57.7860000Z, LockedUntilUtc: 2021-01-08T08:15:27.9730000Z, SessionId: (null)
[2021-01-08T08:14:58.027Z] 2021-01-08 13:44:58.022 INFO 4764 --- [pool-2-thread-4] o.s.c.function.utils.FunctionClassUtils : Main class: class com.bestminds.azurefunction.AzureServiceBusSampleAzureFunction
[2021-01-08T08:14:58.029Z] Message is received: null
[2021-01-08T08:14:58.032Z] Handler processing a request for: orders
[2021-01-08T08:14:58.034Z] Function "orders" (Id: 0ad0ec7c-917c-4d07-9700-5ff5376a89f4) invoked by Java Worker
[2021-01-08T08:14:58.036Z] Executed 'Functions.orders' (Succeeded, Id=0ad0ec7c-917c-4d07-9700-5ff5376a89f4, Duration=25ms)

See line #18 which logs the JMS message as received by Function and it show null all the time. The actual Java Class is as given below

> public class ServiceBusQueueHandler extends AzureSpringBootRequestHandler {
@FunctionName("orders")
public Void execute(@ServiceBusQueueTrigger(name = "orders", queueName = "eas_queue",
connection = "AzureServiceBusConnection")
final String message, final ExecutionContext context) {
context.getLogger().info("Message is received: " + message);
return handleRequest(message, context);
}
}

Do we have a solution to execute Service Bus Queue Triggers locally ?

Guida per i contributori

Nessuna guida per i contributori indicizzata per questo repository

Direzione di ricerca

Start with the ServiceBusQueueTrigger annotation and the ServiceBusQueueHandler.execute method shown in the issue, then reproduce the local deployment using the listed Azure Functions and Spring Boot setup. Trace why the String message is null even though the trigger executes; done means the handler receives and logs the published queue message locally.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
azure, java
Ambito
backend
Tipo di issue
Bug
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.