Azure作业BlobTrigger路径,在路径中包含年月日格式

时间:2017-09-11 22:05:53

标签: c# azure azure-webjobs azure-functions

我正在编写一个Web作业,以一种格式处理转储到azure存储帐户的数据            mystorage /数据/ {YYYY} / {MM} / {DD} /app.csv

我想在Blobtrigger中做的事情如下

  void Foo( BlobTrigger(" mystorage/data/{yyyy}/{MM}/{dd}/app.csv") Stream message, TextWriter log)
{
}

这可能吗?我希望今天的日期被解析为yyyy,MM和dd。基本上应该根据今天的日期触发blob,该日期是blob中文件路径的一部分

1 个答案:

答案 0 :(得分:0)

是的,您可以为此类Blob触发Azure功能。这是一个示例函数定义:

[FunctionName("Blob")]
public static void Blob(
    [BlobTrigger("mystorage/data/{yyyy}/{MM}/{dd}/app.csv")] Stream message, 
    string yyyy,
    string MM,
    string dd,
    TraceWriter log)
{
    log.Info($"Found {yyyy}-{MM}-{dd}");
}

如果你创建一个名为例如blob的blob,它将被触发容器data/2017/09/12/app.csv中的mystorage

请注意,它不会验证日期部分,它会将它们作为纯字符串:例如,data/A/B/C/app.csv也将被处理。您可以将输入参数的类型更改为int,但这会导致非数字路径的绑定异常。手动解析日期应该是微不足道的:

if (DateTime.TryParse($"{yyyy}-{MM}-{dd}", out DateTime date))
{
    log.Info($"Found {date}");
}