代码之家  ›  专栏  ›  技术社区  ›  Humble Rumble

Azure角色失败通知

  •  2
  • Humble Rumble  · 技术社区  · 10 年前

    我有一个Azure云服务负载平衡2个角色,最近添加了一个自定义LoadBalancerProbe。

    我遇到的问题是,在我的站点中,我有一个线程任务正在抛出未处理的异常,其中5个未处理的例外导致角色报告自己不健康。我已经通过处理这些未处理的异常解决了这个问题,但是,我们有一个庞大的团队,我担心这可能会在未来的版本中再次发生。

    我想设置一个azure通知(最好是电子邮件),让我知道当我的某个角色报告自己不健康时。我在网上四处寻找,但找不到任何帮助。以前有人这样做过吗?这更像是一种预防措施,但我很想把它付诸实施。

    提前感谢你能给我的任何帮助

    1 回复  |  直到 10 年前
        1
  •  2
  •   MikeWo    10 年前

    据我所知,平台上没有针对这一点的警报,但您当然可以进行一些编码/脚本来完成这一点。您可以使用任何SDK、Microsoft Azure管理库或命令行工具来访问Azure管理API,但在这里我将使用PowerShell作为示例。我没有一个完整的脚本,但主要部分是获取实例状态,例如:

    $NonReadyInstances = (Get-AzureDeployment $serviceName -Slot Production -verbose:$false).RoleInstanceList | Where-Object { $_.InstanceStatus -ne "ReadyRole" }
    

    这是获取所有未处于就绪状态的实例;然而,您可能希望在系统缩放等过程中过滤掉实例的其他几个有效状态 list of valid instances states 您可以使用来决定要通知哪些内容。例如,在您的案例中,我认为CyclingRole或RestartingRole是需要注意的。

    检查$NonReadyInstances变量中返回的项目数,如果大于零,请发送电子邮件。将其写入脚本并定期运行。

    如果您不熟悉Azure PowerShell Cmdlet,这里有一个开始和设置的链接- http://msdn.microsoft.com/en-us/library/jj156055.aspx

    此外,如果您想在不从自己的计算机运行的情况下运行此服务,这里有一个Azure自动化预览服务的链接- http://azure.microsoft.com/en-us/services/automation/ .