我有一个具有一个输入和两个输出的天蓝色功能应用程序。在这种情况下,每当将图像上传到容器:原始图像时,都会触发功能应用程序,该程序将生成两个缩略图图像。
我使用VS2017开发了以下功能应用程序,并部署到了Azure门户。
代码:
using ImageResizer;
using Microsoft.Azure.WebJobs;
using Microsoft.Azure.WebJobs.Host;
using System;
using System.Collections.Generic;
using System.IO;
namespace FunctionApp1
{
public static class Function1
{
[FunctionName("Function1")]
public static void Run(
[BlobTrigger("originals/{name}", Connection = "xxxxxxx")]Stream image,
[Blob("thumbs/s-{name}", FileAccess.ReadWrite, Connection = "xxxxxxx")]Stream imageSmall,
[Blob("thumbs/m-{name}", FileAccess.ReadWrite, Connection = "xxxxxxx")]Stream imageMedium,
TraceWriter log)
{
var imageBuilder = ImageResizer.ImageBuilder.Current;
var size = imageDimensionsTable[ImageSize.Small];
imageBuilder.Build(
image, imageSmall,
new ResizeSettings(size.Item1, size.Item2, FitMode.Max, null), false);
image.Position = 0;
size = imageDimensionsTable[ImageSize.Medium];
imageBuilder.Build(
image, imageMedium,
new ResizeSettings(size.Item1, size.Item2, FitMode.Max, null), false);
}
public enum ImageSize
{
ExtraSmall, Small, Medium
}
private static Dictionary<ImageSize, Tuple<int, int>> imageDimensionsTable = new Dictionary<ImageSize, Tuple<int, int>>()
{
{ ImageSize.ExtraSmall, Tuple.Create(320, 200) },
{ ImageSize.Small, Tuple.Create(640, 400) },
{ ImageSize.Medium, Tuple.Create(800, 600) }
};
}
}
在验证它时,我发现它正在根据要求生成两个不同的图像,但是我看到其中一个文件已损坏。
CorrectImage:
损坏的图像:
我对多个图像进行了验证,但是看到了相同的问题。配置中等大小的图像总是会损坏。
对以上代码的任何更正都会很有帮助。
有人可以帮助我解决此问题吗?
答案 0 :(得分:1)
能否请您检查是否有其他功能应用程序处于运行状态。简而言之,我想说一下,请检查您在此过程中开发的所有功能应用程序,它们正在监视blob存储容器。我怀疑其他一些功能应用程序正在触发并导致此问题。请停止所有功能应用程序,仅运行所需的功能应用程序,以查看它是否可以解决您的问题。如果您需要进一步的帮助,请告诉我。