Azure / Azure/azure-functions-java-library

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

Ouverte
#142 2 commentaires 0 réactions 0 personnes assignées Voir sur GitHub
area:java-functions
Langage dominant
Java
Étoiles
45
Forks
49
Métriques de merge des PR
Aucune PR mergée en 30 j

Description

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 ?

Guide de contribution

Aucun guide de contribution indexé pour ce dépôt

Piste de recherche

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.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Évaluation

Stack technique
azure, java
Domaine
backend
Type d'issue
Bug
Difficulté
4/5
Temps estimé
3-5 jours
Activité
À l'abandon
Clarté
Plutôt claire
Accessibilité débutants
35/100

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.