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 时不工作

Azure 云服务内置自动缩放如何工作?

Swagger UI 未在 azure .net 核心中生成,但在本地工作

使用数据库连接将代码部署到 Azure Web 时,Flask 应用程序无法呈现,但在本地服务器上工作正常

部署到 Azure 网站时 WebApi 不工作

本地地理定位离子手表位置在后台工作,但在手机锁定时不工作