У меня есть функция, запускаемая служебной шиной, у которой есть выход для хранения. Я могу успешно записать одну json строку в файл CSV в хранилище.
Однако у меня есть проблемы: 1) Я получаю сообщение об ошибке «Microsoft. WindowsAzure. Хранение: указанный список блоков недействителен. «когда за короткое время сработало несколько событий. Я полагаю, что есть несколько событий записи, вызывающих ошибку.
2) Как добавить новые строки с той же датой в один файл? (один файл csv в день)
https://docs.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob-output?tabs=java
КОД:
package com.topictriggerdatalakeoutput;
import com.microsoft.azure.functions.annotation.*;
import com.microsoft.azure.functions.*;
/**
* Azure Functions with Service Topic Trigger.
*/
public class TopicTriggerDatalakeOutput {
/**
* This function will be invoked when a new message is received at the Service Bus Topic.
*/
@FunctionName("TopicTriggerDatalakeOutput")
public void run(
@ServiceBusTopicTrigger(
name = "message",
topicName = "MyTopic",
subscriptionName = "MyTopicSubscription",
connection = "sbconnstring"
)
String message,
@BlobOutput(
name = "target",
connection = "DataLakeconnstring",
path = "sales/blob.csv")
OutputBinding<String> outputItem,
final ExecutionContext context
) {
context.getLogger().info("Data lake: Java Service Bus Topic trigger function executed.");
context.getLogger().info("Data Lake Message: " + message);
// Write the name to the message.
outputItem.setValue(message);
}
}