【问题标题】:Connection string for azure table storage for local connection用于本地连接的天蓝色表存储的连接字符串
【发布时间】:2019-05-13 11:46:35
【问题描述】:

我是结合 azure table storage + node.js 进行云开发的新手。在所有示例中,我发现 azure 存储的连接字符串只有那些拥有真实 windows azure 帐户的人。由于我在本地 PC 上进行开发,需要配置本地 azure 存储帐户。

我尝试使用连接字符串为:

<add key="AZURE_STORAGE_ACCOUNT" value="DevStorage"/>
  <add key="AZURE_STORAGE_ACCESS_KEY" value="Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw=="/>

可以通过不在代码中的 azure storage emulator 连接 azure storage。

谁能帮我解决一下?

【问题讨论】:

    标签: node.js azure azure-storage azure-table-storage


    【解决方案1】:

    像这样创建你的 node.js 表服务客户端:

    var azure = require('azure');
    var tableClient = azure.createTableService(ServiceClient.DEVSTORE_STORAGE_ACCOUNT, ServiceClient.DEVSTORE_STORAGE_ACCESS_KEY, ServiceClient.DEVSTORE_TABLE_HOST);
    

    通过使用 DEVSTORE_STORAGE_ACCOUNT、DEVSTORE_STORAGE_ACCESS_KEY 和 DEVSTORE_BLOB_HOST,您可以在 node.js Azure SDK 中使用 hard coded 的 blob 存储模拟器设置。这消除了等式中的 node.js 配置问题。

    【讨论】:

    • 您好 Jmac,感谢您的回复。我使用的是天蓝色表存储而不是 blob 一。我需要知道 DEVSTORE_STORAGE_ACCOUNT、DEVSTORE_STORAGE_ACCESS_KEY 和 DEVSTORE_TABLE_HOST 的值,它们在本地 PC(本地 azure 模拟器)中运行,而不是在真正的云中。我将键值用作
    • 我编辑了我的代码 sn-p 以使用表存储客户端。您可以在此处查看 Azure SDK 示例:github.com/WindowsAzure/azure-sdk-for-node/blob/master/examples/… 就像我之前所说的,使用 DEVSTORE_* 常量可以让您在使用存储模拟器时绕过任何配置问题。一旦你的代码在本地运行,你就可以使用 AZURE_STORAGE_ACCOUNT 和 AZURE_STORAGE_ACCESS_KEY 配置设置来指向一个实时的 Azure 存储帐户。
    • 对于任何遇到这里的人来说,link 很有帮助
    【解决方案2】:

    试试下面的连接信息看看是否有帮助。

    帐户名称 = devstoreaccount1

    帐户密钥 = Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==

    【讨论】:

    • 嗨,徐,感谢您的响应。得到的错误是:iisnode在处理请求时遇到错误。HRESULT:0x2 HTTP状态:500 HTTP原因:内部服务器错误您收到此HTTP200响应是因为system.webServer/iisnode/@devErrorsEnabled 配置设置为'true'。除了node.exe进程的stdout和stderr的日志,考虑使用debugging和ETW traces来进一步诊断问题。最后生成的64k输出由node.exe进程到stdout和stderr如下图:C:\node\tasklist\WebRole1\server.js:20 throw error; ^
    • 对不起,我对nodeJS不熟悉,可能无法帮助你。 :(
    【解决方案3】:

    就我而言,我在外部虚拟机上运行存储模拟器,使用 Passport 将端口 20000、20001、20002 的外部请求重定向到此虚拟机内的 localhost 端口 10000、10001、10002...

    var connectionString = 'DefaultEndpointsProtocol=http;AccountName=devstoreaccount1;AccountKey=Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==;BlobEndpoint=http://192.168.56.56:20000/devstoreaccount1;TableEndpoint=http://192.168.56.56:20002/devstoreaccount1;QueueEndpoint=http://192.168.56.56:20001/devstoreaccount1;';
    
    var azure = require('azure-storage');
    var tableSvc = azure.createTableService(connectionString);
    
    var query = new azure.TableQuery()
      .top(5)
      .where('PartitionKey eq ?', 'CONDITION');
    
    tableSvc.queryEntities('TABLENAME',query, null, function(error, result, response) {
        if(!error) {
          // query was successful
          console.log(result.entries);
        }
      });
    

    【讨论】:

      猜你喜欢
      • 2019-02-02
      • 1970-01-01
      • 2019-02-02
      • 2020-08-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-16
      相关资源
      最近更新 更多