0

我有一个设置如下的 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 的存储的依赖项异常调用,此时逻辑上不存在该存储,我不确定为什么它会按应有的方式进行这些操作无论 blob 是否已经存在用于写入它,这与存储 API 无关。

我也可以写信blobOut使用 NuGet 包作为解决方法,但这不是最佳做法。或者只是忽略异常,因为函数运行没有问题,尽管每次调用都抛出异常,日志变得非常拥挤,无用的异常。

我的项目中有以下 NuGet 包:

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

在此处输入图像描述

在此处输入图像描述

4

1 回答 1

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);

        }

在此处输入图像描述

在此处输入图像描述

于 2019-07-26T08:28:49.337 回答