首页 > 解决方案 > 如何使用队列触发器 Azure 函数创建 Blob 输出绑定

问题描述

将 Blob 名称传递到 Azure 函数时,将消息添加到队列时无法触发

不工作

#r "Newtonsoft.Json"
using System;
using Newtonsoft.Json;

public static void Run(string myQueueItem, 
 Stream outputBlob, 
ILogger log)
{
    log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");
    dynamic data = JsonConvert.DeserializeObject(myQueueItem);
    log.LogInformation($"We got a new Queue Request Type: {data.MessageType}");
    if(data.MessageType == "Create Blob")
    {
        //  outputBlob = data.Message;
    }
    // outputBlob = "";
    string blobFileName = "tettet.script";
}

在职的

我希望将文件创建为包含在正文部分中的队列消息。

还需要从队列对象中分配 Blob 文件名作为参数。(uploadedscript/{blobFileName})

标签: blobazure-functionsazure-blob-storage

解决方案


使用如下代码:

using System;

public static void Run(string myQueueItem,out string outputBlob,ILogger log)
{
    log.LogInformation($"C# Queue trigger function processed: {myQueueItem}");

    outputBlob=myQueueItem;
}

和function.json:

{
  "bindings": [
    {
      "name": "myQueueItem",
      "type": "queueTrigger",
      "direction": "in",
      "queueName": "queue",
      "connection": "AzureWebJobsStorage"
    },
    {
      "type": "blob",
      "name": "outputBlob",
      "path": "container/{queueTrigger}",
      "connection": "AzureWebJobsStorage",
      "direction": "out"
    }
  ]
}

推荐阅读