在 Azure Web 角色实例上运行脚本



有没有办法在Azure Web 角色实例上执行一些脚本?我是Azure和Azure Management API的新手。

基本上,我想要实现的是,根据环境类型,我想在所有 Azure Web 角色实例中打开/关闭几个服务。因此,例如,如果我有一个具有 5 个实例的 Web 角色,那么脚本应该在所有 5 个实例中执行。

  1. 确定过渡/生产环境
  2. 获取过渡和生产环境的所有 Web 角色
  3. 对于每个角色获取所有实例
  4. 在所有实例中运行脚本(远程)

这里的任何帮助将不胜感激。

编辑:我能够获取每个环境的暂存/生产环境详细信息和Web角色详细信息。我正在使用服务管理 Rest API 和获取云服务属性方法:

https://management.core.windows.net//services/hostedservices/?embed-detail=true

上述 URL 返回角色实例及其 IP 地址的列表。

但是当我尝试点击云服务 (Web API) 时,它会给出 404 错误。不确定我们是否可以使用该 IP 来访问 IIS 上托管的 Web API 项目。

提前感谢,贾什

不确定您要实现的目标。但是,如果你有一个具有 Web/辅助角色的云服务,则无法直接从 Internet 访问每个单独的实例。有一个 Azure 负载均衡器位于部署前面,可将 Internet 请求路由到实例。这对您阅读很有用。

但是,您可以做的是实现 RoleEntryPoint 类,就像实现辅助角色一样。然后,您可以定期检查触发器 - 例如容器中的 Blob、表存储中的记录等。发生这种情况时 - 决定该怎么做:从本地主机获取特殊URL,直接使用Process.Start()执行脚本。您的选择,您拥有完全控制权。您所要做的就是在 Web 项目中添加一个继承自 RoleEntryPoint 的新类。

您可以参考此资源,了解有关在 WebRole 项目中使用 RoleEntryPoint 的更多信息:

  • https://code.msdn.microsoft.com/windowsazure/Combine-WorkerRole-and-f97d0487
  • http://blog.syntaxc4.net/post/2011/04/13/windows-azure-role-startup-life-cycle.aspx

最新更新