从队列触发器存储在 blob 存储中
store in blob storage from queue trigger
这个问题已经过编辑,因为我不太了解绑定在 azure 函数中的工作原理,而且我的问题格式不正确。
基本上,我想知道如何将 blob 写入必须由队列消息触发的博客存储(这意味着 blob 应该在 azure 队列触发器中创建,然后存储到 blob 存储) .
Tom Sun 给出了我期待的答案
如果您想通过队列触发器将队列消息存储到 Azure Blob,您可以使用 cloudAppendblob。下面是演示代码
[FunctionName("TestQueueTrigger")]
public static void Run([QueueTrigger("queueName", Connection = "AzureWebJobsStorage")]string myQueueItem,TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("AzureWebJobsStorage"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
// Create the container if it doesn't already exist.
container.CreateIfNotExists();
var appendBlob = container.GetAppendBlobReference("blobName.txt");
if (!appendBlob.Exists())
{
appendBlob.CreateOrReplace();
appendBlob.AppendText(myQueueItem);
}
else
{
appendBlob.AppendText($",{myQueueItem}");
}
}
这个问题已经过编辑,因为我不太了解绑定在 azure 函数中的工作原理,而且我的问题格式不正确。
基本上,我想知道如何将 blob 写入必须由队列消息触发的博客存储(这意味着 blob 应该在 azure 队列触发器中创建,然后存储到 blob 存储) .
Tom Sun 给出了我期待的答案
如果您想通过队列触发器将队列消息存储到 Azure Blob,您可以使用 cloudAppendblob。下面是演示代码
[FunctionName("TestQueueTrigger")]
public static void Run([QueueTrigger("queueName", Connection = "AzureWebJobsStorage")]string myQueueItem,TraceWriter log)
{
log.Info($"C# Queue trigger function processed: {myQueueItem}");
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(CloudConfigurationManager.GetSetting("AzureWebJobsStorage"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer container = blobClient.GetContainerReference("mycontainer");
// Create the container if it doesn't already exist.
container.CreateIfNotExists();
var appendBlob = container.GetAppendBlobReference("blobName.txt");
if (!appendBlob.Exists())
{
appendBlob.CreateOrReplace();
appendBlob.AppendText(myQueueItem);
}
else
{
appendBlob.AppendText($",{myQueueItem}");
}
}