我的Azure功能在一夜之间变得无响应(新的Blob触发器不会触发),并且当我在Azure门户用户界面中单击该作业时再次开始工作。
更新8月9日11:17 -$ logs每小时创建一个新的子文件夹时,这些新文件不会触发BlobTrigger
创建新文件夹时,新文件夹不会触发BlobTrigger 文件在该文件夹中创建。
结束更新
public static class Function2
{
[FunctionName("Function2")]
public static void Run([BlobTrigger("$logs/{name}", Connection = "ddavemstorage")]
Stream blobStream, string name, TraceWriter log, ExecutionContext context)
我可以验证$ logs文件是否正在定期写入(使用Azure Storage Explorer),但不要在一夜之间触发BlobTrigger。
截屏时间为1016。30分钟前,我查看了门户网站Azure Function UI。然后,它处理了0600UTC(实际上是我的时间为0700)中的日志文件。然后它处理了所有其他错过的事情。
这可能与$ logs文件夹有关。几年前无法监控。 https://github.com/Azure/azure-webjobs-sdk/issues/715
$ logs文件夹正在按预期方式写入。
答案 0 :(得分:0)
在存储中,子文件夹是虚拟的,与实际的文件系统不同。解决此问题的方法和可能的解决方案是通过在function.json中提供子文件夹名称(例如:namekey
)来包含完整路径。
最近发布了一个类似的话题,也讨论相同的问题,您可以在here上查看其更多信息。
答案 1 :(得分:0)
通过每5分钟创建一个类型为TimerTrigger的第二个函数,我发现第一个BlobTrigger函数现在可以按预期拾取文件。
public static class TestTimer
{
[FunctionName("TestTimer")]
// runs every 5 minutes
public static void Run([TimerTrigger("0 */5 * * * *")] TimerInfo myTimer, TraceWriter log)
{
log.Info($"C# Timer trigger function executed at: {DateTime.Now}");
}
}