有没有办法在Azure Web 角色实例上执行一些脚本?我是Azure和Azure Management API的新手。
基本上,我想要实现的是,根据环境类型,我想在所有 Azure Web 角色实例中打开/关闭几个服务。因此,例如,如果我有一个具有 5 个实例的 Web 角色,那么脚本应该在所有 5 个实例中执行。
- 确定过渡/生产环境
- 获取过渡和生产环境的所有 Web 角色
- 对于每个角色获取所有实例
- 在所有实例中运行脚本(远程)
这里的任何帮助将不胜感激。
编辑:我能够获取每个环境的暂存/生产环境详细信息和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