如何在本地PC上访问模拟Azure存储

时间:2017-04-04 21:20:37

标签: azure azure-functions

我开始使用Azure功能进行开发。我已经能够连接到我的实际azure存储帐户队列,以测试如何使用Azure功能进行编程。现在我的下一步是使用Microsoft Azure存储资源管理器来使用本地存储帐户,这样我就不必连接到azure了。我在本文中看到了如何做到这一点:https://docs.microsoft.com/en-us/azure/storage/storage-configure-connection-string#create-a-connection-string-to-the-storage-emulator

in the appsettings.json I changed my values to this exactly:
{
  "IsEncrypted": false,
  "Values": {
    "AzureWebJobsStorage": "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==",
    "AzureWebJobsDashboard": "",
    "StorageConnectionString": "UseDevelopmentStorage=true"

  }
}

当我使用Visual Studio启动Azure Fuctions CLI时,我收到以下错误消息:

  

ScriptHost初始化失败Microsoft.WindowsAzure.Storage:The   远程服务器返回错误:(403)禁止。

有没有人遇到过这个?

1 个答案:

答案 0 :(得分:6)

请更改以下代码行:

"AzureWebJobsStorage": "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="

要么:

"AzureWebJobsStorage": "UseDevelopmentStorage=true"

或:

"AzureWebJobsStorage": "DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;
AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;
    BlobEndpoint=http://127.0.0.1:10000/devstoreaccount1;
    TableEndpoint=http://127.0.0.1:10002/devstoreaccount1;
    QueueEndpoint=http://127.0.0.1:10001/devstoreaccount1;"

那应该处理403错误。

基本上,存储模拟器的端点与云存储帐户不同。例如,云存储帐户的默认blob端点为http://[youraccount].blob.core.windows.net,而存储模拟器的blob端点为http://127.0.0.1:10000。当您只在连接字符串中指定存储模拟器的存储帐户名称和密钥时,存储客户端库会将其视为云存储帐户,并尝试使用您提供的帐户密钥连接到http://devstoreaccount1.blob.core.windows.net。由于云中devstoreaccount1的密钥不是您提供的密钥,因此您收到403错误。