Javascript blobtrigger示例函数因StorageException

时间:2019-04-23 15:20:21

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

带有错误触发功能的全新javascript FunctionApp崩溃,错误500:

  

说明:由于未处理的异常,进程已终止。   异常信息:Microsoft.WindowsAzure.Storage.StorageException:指定的资源名称包含无效字符。      在Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteAsyncInternal [T](RESTCommand`1 cmd,IRetryPolicy策略,OperationContext operationContext,CancellationToken令牌)      在C:\ projects \ azure-webjobs-sdk-rqm4t \ src \ Microsoft.Azure.WebJobs.Extensions.Storage \ Queues \ Listeners \中的Microsoft.Azure.WebJobs.Host.Queues.Listeners.QueueListener.ExecuteAsync(CancellationToken cancelleToken) QueueListener.cs:第155行      在Microsoft.Azure.WebJobs.Host.Timers.TaskSeriesTimer.RunAsync(CancellationToken cancelleToken)在C:\ projects \ azure-webjobs-sdk-rqm4t \ src \ Microsoft.Azure.WebJobs.Host \ Timers \ TaskSeriesTimer.cs:line 147      在Microsoft.Azure.WebJobs.Host.Timers.WebJobsExceptionHandler。<> c__DisplayClass3_0。 b__0()在C:\ projects \ azure-webjobs-sdk-rqm4t \ src \ Microsoft.Azure.WebJobs.Host \ Timers \ WebJobsExceptionHandler .cs:第54行      在System.Threading.Thread.ThreadMain_ThreadStart()      在System.Threading.ThreadHelper.ThreadStart_Context(对象状态)      在System.Threading.ExecutionContext.RunInternal(ExecutionContext executeContext,ContextCallback回调,对象状态)   ---从之前引发异常的位置开始的堆栈结束跟踪---      在System.Threading.ExecutionContext.RunInternal(ExecutionContext executeContext,ContextCallback回调,对象状态)      在System.Threading.ThreadHelper.ThreadStart()

步骤:我使用以下命令创建了一个新的FunctionApp:

  • 使用javascript
  • 在Windows服务计划上
  • 全新的存储/资源组

接下来,我导航到FunctionApp并创建了一个新函数:

  • 从门户网站
  • 带有“ Azure Blob存储触发器”模板(我安装了存储扩展)
  • 默认存储路径,变量名称等

接下来,我在存储器上创建了容器“ samples-workitems”,并在其中放置了一个文件以触发功能,并从功能日志中获取错误消息。

我还尝试使用值samples-workitems / {我复制的文件}从门户网站右侧面板“测试”该功能,但出现500错误和上一条消息。

回到Web门户中的功能应用程序,我注意到了奇怪的事情:

enter image description here Azure存储扩展似乎已正确安装,但是如果我尝试添加新的Blob触发功能,它会再次询问我是否安装存储扩展...因此,我想它永远无法成功安装扩展并且无法执行。

编辑:原来,Azure现在已确认已安装扩展,但我仍然有StorageException

2 个答案:

答案 0 :(得分:0)

您可以从Kudu检查扩展是否已成功安装。打开DebugConsole->转到D:\ home \ site \ wwwroot \ bin。 Microsoft.Azure.WebJobs.Extensions.Storage.dll。如果存储dll不存在,则扩展安装不会成功。

答案 1 :(得分:0)

您可以选择重新安装所需的扩展。您可以参考以下维基百科:Update your app from portal

编辑extensions.csproj文件,在PackageReference中对ItemGroup项目进行必要的添加和更新,然后选择“保存”。有关受支持的软件包版本的信息,请参见What NuGet packages do i need?

然后在wwwroot文件夹中运行以下命令来构建引用的程序集。

dotnet build extensions.csproj -o bin --no-incremental --packages D:\home\.nuget