Tengo una aplicación Spring Boot que publicará un mensaje en Azure Queue. Tengo una función azure queueTrigger más escrita en Java que escuchará la misma cola en la que la aplicación Spring Boot ha publicado un mensaje. La función queueTrigger no puede detectar mensajes publicados en la cola.
Aquí está mi código de editor
public static void addQueueMessage(String connectStr, String queueName, String message) { try { // Instantiate a QueueClient which will be // used to create and manipulate the queue QueueClient queueClient = new QueueClientBuilder() .connectionString(connectStr) .queueName(queueName) .buildClient(); System.out.println("Adding message to the queue: " + message); // Add a message to the queue queueClient.sendMessage(message); } catch (QueueStorageException e) { // Output the exception message and stack trace System.out.println(e.getMessage()); e.printStackTrace(); } }Aquí está mi código de aplicación de la función queueTrigger
@FunctionName("queueprocessor") public void run( @QueueTrigger(name = "message", queueName = "queuetest", connection = "AzureWebJobsStorage") String message, final ExecutionContext context ) { context.getLogger().info(message); }Estoy pasando la misma cadena de conexión y nombre de cola, todavía no funciona. Si ejecuto la función en mi máquina local, se activa pero con una imagen de error de error
Como sugiere el documento oficial ,
Las funciones esperan una cadena codificada en base64. Cualquier ajuste al tipo de codificación (para preparar los datos como una cadena codificada en base64) debe implementarse en el servicio de llamada.
Actualice el código del remitente para enviar un mensaje codificado en base64.
String encodedMsg = Base64.getEncoder().encodeToString(message.getBytes()) queueClient.sendMessage(encodedMsg);