在 Windows Server Container 中运行 Azure Storage Emulator:能否监听自定义地址?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在 Windows Server Container 中运行 Azure Storage Emulator:能否监听自定义地址?相关的知识,希望对你有一定的参考价值。

  我要做什么?

  1. 改 ASE 的监听地址。对于有强迫症的我来说,ASE 默认监听的是 127.0.0.1:10000-10002,这让我无法接受,所以我要将它改成域名 + 80 端口的方式;
  2. 放到容器中,ASE 只允许单实例运行,难道为了这玩意儿,我要在三个环境下开三个虚拟机?
  3. 连接 SQL Server,而不是 SQL Server Express LocalDB。DEV/QA 各有其 SQL Server Instance,当然要桥归桥,路归路。

  要改变 ASE 的监听地址,首先要确认它有没有使用 HTTP Listener(即 HTTP.sys),否则无法支持端口共享。这个简单,运行起 ASE,netstat -ano 看到端口 10000-10002 的 PID 为 4,基本就可以断定了,但我们还是要进一步确认一下。

  打开 C:\\Program Files (x86)\\Microsoft SDKs\\Azure\\Storage Emulator\\AzureStorageEmulator.exe.config,将 StorageEmulatorConfig 中的监听地址和帐号改成这个样子:

<StorageEmulatorConfig>
  <services>
    <service name="Blob" url="http://dev.blob.contoso.com/"/>
    <service name="Queue" url="http://dev.queue.contoso.com/"/>
    <service name="Table" url="http://dev.tablecontoso.com/"/>
  </services>

  <accounts>
    <account name="dev" authKey="Eby8vdM02xNOcqFlqUwJPLlmEtlCDXJ1OUzFT50uSRZ6IFsuFq2UVErCz4I6tq/K1SZFPTOtr/KBHBeksoGMGw==" />
  </accounts>
</StorageEmulatorConfig>

 

  以管理员方式运行 ASE,结果如下:

技术分享

 

  看到这里,各位看官可能要问,为什么监听的地址前面要加个“dev.”而不是直接用“blob.contoso.com”这样的地址呢?咳,还不是为了 Azure Storage Explorer。我们看看 Azure Storage Explorer 的连接页面:

技术分享

 

  为了能让 Azure Storage Explore 能连接上。在 Azure Storage Explore 的连接页面上,第一种方式就不用想了,因为你是模拟器;第二种连接方式是使用连接字符串,Azure Storage Emulator 的连接字符串格式必须带有 /AccountName 的后缀(见 https://docs.microsoft.com/en-us/azure/storage/common/storage-use-emulator),尝试一下:

技术分享

 

   虽然这是我最想要的连接方式,但显然 Azure Storage Explorer 并不接受这样的连接串。那么只剩下第三种:

技术分享

 

   结果:

 技术分享

 

  Azure Storage Explorer 把我们的域名改成了 accountname.blob.contoso.com 这样的格式,哎,这是 Azure 的 Storage Account 的 套路,虽然前面挂个“dev.”,后边挂个“/dev”,但也勉强接受了。建个 container 试试:

技术分享

 

Okay!下一章,我们要尝试使用自定义的 SQL Server 实例。

以上是关于在 Windows Server Container 中运行 Azure Storage Emulator:能否监听自定义地址?的主要内容,如果未能解决你的问题,请参考以下文章

rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting containe

rpc error: code = 2 desc = oci runtime error: exec failed: container_linux.go:247: starting containe

无法在 MS Teams 中打开附件链接

windows server安装OpenSSH server

微软 windows server 多少钱

Server-U在Windows Server 2003中的详细配置