Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Azure function app - writing to blob

I am trying to write to a blob (txt-file) from my Azure function, however, nothing happens: no blobs are created, no exceptions are thrown. I've taken the Blob-trigger code from here: https://learn.microsoft.com/en-us/azure/azure-functions/functions-bindings-storage-blob#output

This is my code:

[FunctionName("ProcessFiles")]
public static void Run(
[BlobTrigger("sample-items/sample-file.csv", Connection = "sample-connection")] Stream myBlob,
[Blob("sample-items/validationResult.json", FileAccess.Write)] Stream validationOutput,
TraceWriter log)
{
    log.Info($"C# Blob trigger function Processed blob\n Size: {myBlob.Length} Bytes");

    using (var sw = new StreamWriter(validationOutput, Encoding.UTF8))
    {
        try
        {
            sw.Write("HELLO WORLD");            
            sw.Flush();
        }
        catch (Exception ex)
        {

        }
    }
}

These are my Nuget packages: Microsoft.NET.Sdk.Functions 1.0.10.

The blob container has "Private access" policy

like image 795
Hos Avatar asked Nov 25 '25 12:11

Hos


1 Answers

It seems I was using the stream incorrect. The following code changes made it work: (added Connection attribute to validationOutput and changed from Stream to TextWriter)

[FunctionName("ProcessFiles")]
public static void Run(
[BlobTrigger("sample-items/sample-file.csv", Connection = "sample-connection")] Stream myBlob,
[Blob("sample-items/validationResult.json", FileAccess.Write, Connection = "sample-connection")] TextWriter validationOutput,
TraceWriter log)
{
    log.Info($"C# Blob trigger function Processed blob\n Size: {myBlob.Length} Bytes");

    validationOutput.WriteLine("hello world");
}
like image 117
Hos Avatar answered Nov 28 '25 04:11

Hos



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!