首页 > 解决方案 > 尝试创建 docker 容器功能应用程序,当我执行 docker run 时收到错误“未定义存储”

问题描述

遵循微软文档(https://docs.microsoft.com/en-us/azure/azure-functions/functions-create-function-linux-custom-image?tabs=bash%2Cportal&pivots=programming-language-python)但是Azure Blob存储触发器模板。

当我运行 docker run -p 8080:80 -it example/azurefunctionsimage:v1.0 得到以下错误,

 fail: Host.Startup[402]
fail: Host.Startup[402]
      The 'voice-text' function is in error: Microsoft.Azure.WebJobs.Host: Error indexing method 'Functions.voice-text'. Microsoft.Azure.WebJobs.Extensions.Storage: Storage account connection string 'AzureWebJobsStorage' does not exist. Make sure that it is a defined App Setting.
Hosting environment: Production
Content root path: /
Now listening on: http://[::]:80
Application started. Press Ctrl+C to shut down.
info: Host.General[316]
      Host lock lease acquired by instance ID '0000000000000000000000000'.
warn: Microsoft.Azure.WebJobs.Script.ChangeAnalysis.ChangeAnalysisService[0]
      Breaking change analysis operation failed
System.InvalidOperationException: The BlobChangeAnalysisStateProvider requires the default storage account 'Storage', which is not defined.
   at Microsoft.Azure.WebJobs.Script.ChangeAnalysis.BlobChangeAnalysisStateProvider.GetCurrentAsync(CancellationToken cancellationToken) in /src/azure-functions-host/src/WebJobs.Script.WebHost/BreakingChangeAnalysis/BlobChangeAnalysisStateProvider.cs:line 40
   at Microsoft.Azure.WebJobs.Script.ChangeAnalysis.ChangeAnalysisService.TryLogBreakingChangeReportAsync(CancellationToken cancellationToken) in /src/azure-functions-host/src/WebJobs.Script.WebHost/BreakingChangeAnalysis/ChangeAnalysisService.cs:line 92

请帮助解决此错误..

标签: azuredockerazure-blob-storageazure-function-appazure-functions-core-tools

解决方案


Azure Functions 需要一个存储帐户才能在本地运行。

添加它的最佳方法是在 Azure 中创建一个存储帐户,并将连接字符串作为名为 AzureWebJobsStorage 的环境变量传递给 docker run 命令。

docker run -p 8080:80 -it -e AzureWebJobsStorage="{connection-string}" <docker-id>/mydockerimage:v1.0.0

推荐阅读