1
resposta

18 Configuração de resultados para uma Azure Function

Uma Azure Function foi definida para receber informações de uma Queue Storage, transformar seus dados em um arquivo texto e, em seguida, publicá-los em um Azure Blob Storage.

Qual o tipo de retorno que a function deve necessariamente ter para que o requisito seja satisfeito?

A pergunta me deixou confuso e gostaria de uma explicação melhor:

Como opção de resposta, temos o BlobOutput, que não é o retorno necessário para que o requisito seja satisfeito. Esse tipo de retorno permite que uma função do Azure escreva dados em um Blob Storage.

Por que essa opção esta incorreta, sendo que o requerido na pergunta é "publicá-los em um Azure Blob Storage". Essa opção não poderia ser usada?

Entendi que a opção void foi informada como sendo a correta, pois é possível escrever código dentro da function para que o blob seja criado.

Teria algum exemplo disso funcionando?

Obrigado

1 resposta

Olá, Reginaldo!

Quando falamos sobre o tipo de retorno de uma Azure Function, estamos nos referindo ao que a função devolve após a execução. No seu caso, a função precisa processar dados de uma Queue Storage e salvar o resultado em um Blob Storage.

A opção BlobOutput pode parecer intuitiva, pois sugere que a função escreverá diretamente no Blob Storage. No entanto, em Azure Functions, o tipo de retorno não precisa ser BlobOutput para que você possa escrever em um Blob Storage. Em vez disso, você pode configurar uma ligação de saída (output binding) para o Blob Storage dentro da própria função.

A opção void é considerada correta porque indica que a função não retorna um valor diretamente. Em vez disso, você pode usar o código dentro da função para manipular e salvar os dados no Blob Storage. Aqui está um exemplo simplificado de como isso poderia ser feito em C#:

[FunctionName("ProcessQueueMessage")]
public static void Run(
    [QueueTrigger("myqueue-items")] string myQueueItem,
    [Blob("output-container/{rand-guid}.txt", FileAccess.Write)] out string blobOutput,
    ILogger log)
{
    log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");
    // Transformar os dados em um arquivo texto
    blobOutput = $"Processed message: {myQueueItem}";
}

Neste exemplo, a função não retorna um valor diretamente (void), mas usa um output binding para escrever o resultado em um Blob Storage. O binding é configurado para criar um arquivo de texto no Blob Storage com o conteúdo processado.

Bons estudos!