我正在编写一个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中文件路径的一部分
答案 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}");
}