Azure 自动缩放在本地工作,但在部署时不工作
Posted
技术标签:
【中文标题】Azure 自动缩放在本地工作,但在部署时不工作【英文标题】:Azure Autoscaling works locally but not when deployed 【发布时间】:2013-01-05 02:25:22 【问题描述】:问题
我正在尝试部署一个辅助角色,该角色将自动缩放几个目标站点。我能够在本地运行自动缩放器并且它可以工作(我在我的机器上安装了证书)。但是,一旦我将它作为云应用程序部署到 Azure,它就不会自动缩放。 (但是,辅助角色正在运行,因为我可以看到我的非自动缩放进程在同一个辅助角色中工作。)
我尝试了什么
我已按照Deploying the Autoscaling Application Block 的说明进行操作。
在目标订阅的管理证书中添加了“CN=Windows Azure 工具”证书。 将“CN=Windows Azure 工具”证书添加到自动缩放应用程序的证书中。 指定我的证书在工作角色中的位置@ 指定证书在我的服务存储中的位置,用于配置自动缩放我错过了什么?
谢谢
【问题讨论】:
【参考方案1】:Tuzo 是对的 - 证书应该在 LocalMachine 中,但这还不够。见this SO post。基本上,在 OS Family 2 中,WaWorkerHost 运行在角色初始化过程生成的临时帐户(具有 GUID 名称)下,该帐户有权访问证书私钥;在 OS Family 3 中,WaWorkerHost 运行在“NETWORK SERVICE”账户下,该账户没有私钥访问权限。
目前最好的选择(MS Azure 团队在下一个 SDK 中解决问题)是使用提升的权限运行角色 - 编辑 ServiceDefinition.csdef:
<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="blah" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition" schemaVersion="2012-10.1.8">
<WorkerRole name="blah" vmsize="Small">
<Runtime executionContext="elevated" />
...
</WorkerRole>
</ServiceDefinition>
【讨论】:
【参考方案2】:为了在 Azure 中运行,我会尝试将 Store Location 设置为 LocalMachine。
如果您已按照部署自动缩放应用程序块中的所有步骤操作,则应在角色中部署带有私钥 (.pfx) 的证书。您可以 RDP 进入服务器以验证证书是否已安装(和位置)。
您也可以尝试按照Autoscaling Application Block Logging 启用日志记录,以查看是否有任何消息。
【讨论】:
以上是关于Azure 自动缩放在本地工作,但在部署时不工作的主要内容,如果未能解决你的问题,请参考以下文章
Docker 容器在本地工作,但在上传到 elasticbeanstalk 时不工作
Swagger UI 未在 azure .net 核心中生成,但在本地工作