Blogtrigger在Application Insights中产生HEAD 404错误

时间:2019-07-19 11:09:23

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

我有一个BlobTrigger,其设置如下:

[FunctionName("TransformFile")]
public static void Run(
    [BlobTrigger("%container%/{name}", Connection = "storage")] Stream blobIn,
    [Blob("%container%-pdf/{name}", FileAccess.Write, Connection = "storage")] Stream blobOut)
{
    //...
}

这是什么,它从1个容器中取出文件,对其进行突变并将其写回到另一个容器中。我看到对blobtrigger进行的每个调用都在Application Insights中显示了对逻辑上将新blob写入到其中的存储的依赖项异常调用,该存储在那时还不存在,而且我不确定为什么要这样做使它们不应该这样做。与存储API无关,是否已经存在可对其进行写入的Blob。

我也可以使用NuGet包作为解决方法来写blobOut,但这不是最佳实践。或者在函数运行没有问题时忽略异常,尽管每次调用都引发异常,但日志却被无用的异常塞满了。

我的项目中有以下NuGet软件包:

Microsoft.Azure.WebJobs.Extensions.Storage 3.0.4
Microsoft.NET.sdk.Functions 1.0.24
Microsoft.NETCore.App 2.1.0

1 个答案:

答案 0 :(得分:1)

也许您可以尝试使用我的代码,我已经在本地对其进行了测试,它将创建容器%container%-pdf并将blob上传到该容器。

        [FunctionName("Function1")]
        public static void Run([BlobTrigger("%container%/{name}", Connection = "AzureWebJobsStorage")]Stream myBlob,
            [Blob("%container%-pdf/{name}", FileAccess.Write, Connection = "AzureWebJobsStorage")] CloudBlockBlob outputblob, string name, ILogger log)
        {
            log.LogInformation($"C# Blob trigger function Processed blob\n Name:{name} \n Size: {myBlob.Length} Bytes");
            outputblob.UploadFromStreamAsync(myBlob);

        }

enter image description here

enter image description here