如何从Azure计时器触发器功能引用blob?

时间:2017-11-07 22:22:56

标签: azure azure-storage-blobs azure-functions

我有一个Azure计时器触发器函数,它应该进行一些计算并将结果写入预先存在的blob中的json文件。如何在Timer Triggered函数中引用预先存在的blob?

我似乎找不到任何提供代码示例的文档。有人可以提供吗?

1 个答案:

答案 0 :(得分:4)

首先,您需要更新 function.json 配置文件,以将blob绑定到您将在.csx代码中使用的CloudBlockBlob实例。您可以在功能应用菜单中通过功能下的“集成”选项(带有照明图标的选项)在Azure门户中编辑它。该页面的右上角是一个名为“高级编辑器”的链接。点击该链接将转到您的功能性 function.json 文件:

enter image description here

您将看到一个名为“bindings”的JSON数组,其中包含一个配置计时器的JSON对象。您需要将另一个JSON对象添加到该数组,以将Blob绑定到您将在函数中引用的CloudBlockBlob实例。你的function.json文件看起来像这样:

{
  "bindings": [
    {
      "name": "myTimer",
      "type": "timerTrigger",
      "direction": "in",
      "schedule": "0 */5 * * * *"
    },
    {
      "type": "blob",
      "name": "myBlob",
      "path": "your-container-name/your_blob_filename.json",
      "connection": "AzureWebJobsStorage",
      "direction": "inout"
    }
  ],
  "disabled": false
}

现在您只需更新函数的Run方法签名即可。默认情况下看起来像这样:

public static void Run(TimerInfo myTimer, TraceWriter log)

将blob变量添加到该签名的末尾(并添加必要的包含):

#r "Microsoft.WindowsAzure.Storage"
using Microsoft.WindowsAzure.Storage;
using Microsoft.WindowsAzure.Storage.Blob;

public static void Run(TimerInfo myTimer, TraceWriter log, CloudBlockBlob myBlob)

你们都准备好了! “myBlob”绑定到“your-container-name”容器中的blob“your_blob_filename.json”。