【问题标题】:How to programatically set the instance count for an Azure compute service如何以编程方式设置 Azure 计算服务的实例计数
【发布时间】:2013-12-30 17:14:21
【问题描述】:

我读到 here 可以使用 Rest API 方法 Change Deployment Configuration 以编程方式设置 Azure 计算服务角色的实例计数。

但是,该方法的文档没有提到角色实例,只是一些神秘的扩展属性。有谁知道这是怎么做到的,也许可以提供一些指针或代码sn-p?

我感兴趣的不是 AutoScaling,而是能够设置确切的实例数量以响应自定义事件。

【问题讨论】:

  • 只是好奇,您希望什么样的事件触发您的缩放操作?
  • @Igorek 那里有一些事件,比如白天和晚上的时间段,以及您自己的业务。
  • 回复有点晚了,但是如果您仍然需要,请查看 CloudMonix @cloudmonix.com - 它具有广泛的功能集,旨在让您运行这样的自定义操作而无需需要开发和托管您自己的自定义扩展解决方案

标签: azure cloud


【解决方案1】:

如果您有兴趣增加实例数,那么唯一的方法就是在服务配置文件中设置新的实例数,然后按照您提到的那样执行Change Deployment Configuration 操作。请查看 Windows Azure PowerShell Cmdlet,因为它有一个名为 Set-AzureRole 的 Cmdlet,它将为您完成这项工作。

同样,如果您想减少实例数量,您也可以采用相同的方法。使用这种方法,实例从底部到顶部被删除,例如如果您有 4 个实例正在运行(X_IN_0、X_IN_1、X_IN_2 和 X_IN_3)并且您想要删除 2 个实例,则始终会删除 X_IN_3 和 X_IN_2)。因此,如果您不关心是否删除了最后一个实例,那么您可以使用相同的方法。

但是,Windows Azure 服务管理 API 中提供了一个新操作,它使您能够删除特定实例:Delete Role Instances。您可以在此处阅读有关该操作的信息:http://msdn.microsoft.com/en-us/library/windowsazure/dn469418.aspx。如果您希望取出一个行为异常的特定实例,这真的很方便。我写了一篇关于相同的博客文章,你可以在这里阅读:http://gauravmantri.com/2013/10/16/a-new-version-of-windows-azure-service-management-api-is-available-with-delete-specific-role-instances-and-more-goodies/

【讨论】:

  • 这很有用。那么 Set-AzureRole cmdlet 在幕后做了什么?也许它会创建一个配置文件并调用 Change Deployment REST API?这个配置文件是否记录在任何地方?谢谢。
  • 我的猜测是它读取配置文件,然后更改<instances> 元素的count 属性值,然后调用更改部署REST API。请参阅此链接了解配置文件架构:msdn.microsoft.com/en-us/library/windowsazure/ee758710.aspx.
  • 所有 PowerShell cmdlet 的代码都位于 GitHub 上的 github.com/WindowsAzure/azure-sdk-tools。如果你想知道它是如何做某事的,那么代码就在那里。看起来Guarav是正确的,它只是在config中设置配置并更新。 github.com/WindowsAzure/azure-sdk-tools/blob/…
【解决方案2】:

有一个 Set-AzureRole cmdlet,可让您指定实例的数量 Set-AzureRole (MSDN reference)

这是一个例子:

Set-AzureRole -ServiceName $service -Slot $slot -RoleName "your-role-name" -Count 1

【讨论】:

  • 命令行似乎不是他想要的。 “...使用 Rest API”
猜你喜欢
  • 1970-01-01
  • 2011-07-22
  • 1970-01-01
  • 1970-01-01
  • 2016-11-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-01-17
相关资源
最近更新 更多