Azure Functions:在 Blob 存储秘密存储库上执行读取操作时出错

mat*_*th5 57 .net azure .net-core azure-functions

在本地测试 Azure Functions 时,我收到此错误:

“在 Blob 存储秘密存储库上执行读取操作时出错。请确保‘AzureWebJobsStorage’连接字符串有效。”

我有 Azure Blob 存储设置,包括存储模拟器和存储资源管理器。如何解决这个问题?

小智 189

我在 Azure Durable Functions 上遇到了这个问题,我在这里找到了解决它的方法:https://github.com/Azure/azure-functions-host/issues/3795#issuecomment-430337085

在 中local.settings.json,添加一个名为“files”的新设置AzureWebJobsSecretStorageType并将其设置为“files”。

{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "UseDevelopmentStorage=true",
    "FUNCTIONS_WORKER_RUNTIME": "dotnet",
    "AzureWebJobsSecretStorageType": "files"
  }
}
Run Code Online (Sandbox Code Playgroud)

  • 大约两年多后,这让我很伤心。`"AzureWebJobsSecretStorageType": "files"` 似乎自动需要。 (14认同)
  • 很好的答案!也许在 Windows 上更换 Azure 存储模拟器的推动有点仓促 (4认同)

Viv*_*Dev 23

我的两分钱。

我正在尝试在本地计算机上运行持久功能。

我收到这个错误。

对 Blob 存储秘密存储库执行读取操作时出错。请确保“AzureWebJobsStorage”连接字符串有效

我从github问题上看到了这个答案。

我完全删除了我的文件夹,其路径如下

C:\Users\YourUserName\AppData\Local\Temp\Azurite 
Run Code Online (Sandbox Code Playgroud)

现在一切又恢复正常了。

该文件夹看起来像这样。

Windows 上的 Azurite 文件夹

注意:用户指出它有效,但必须删除我的整个 Temp 文件夹 - 删除 Azurite 文件夹不足以解决问题


itp*_*pro 12

请不要将“AzureWebJobsStorage”参数更改为您的实时存储帐户,因为可能会产生额外费用,并且可能会对您的在线环境产生不可预见的副作用或影响。存储模拟器已被长期弃用,您应该使用 azurite 在本地模拟存储。例如,您可以使用 npm( npm install -g azurite) 或许多其他方式下载 azurite 。

“UseDevelopmentStorage=true”是在本地环境中使用的正确设置,尤其是当您要使用持久函数或其他计算或 I/O 繁重任务时。关于您的问题,azurite 在您为其虚拟存储后端执行它的文件夹中创建多个 json 文件。如果不带任何参数运行 azurite,则应存在以下文件:

  • __azurite_db_blob_extent__.json
  • __azurite_db_queue__.json
  • __azurite_db_queue_extent__.json
  • __azurite_db_table__.json

此外,通常还有两个或多个文件夹,其名称与此类似:

  • __blob存储__
  • __队列存储__

要强制 azure-functions-core-tools 运行时重置存储声明和句柄,请首先停止 azurite 和所有func实例,删除上述文件和文件夹,然后再次启动(首先是 azurite)。

所有内容当然都会消失,但本地开发存储永远不应该用于持久数据。


And*_*nos 5

其他答案都不适合我,所以我将在这里分享我的解决方案。我试过:

  • 改变AzureWebJobsSecretStorageType
  • 终止 azurite 进程并重新启动它
  • 从 AppData 中删除所有文件

这些都不起作用。对我来说,修复方法是使用安装 azurite npm install -g azurite,然后使用 运行它azurite。之后我的旧项目又开始工作了。