我们将与我们的云服务角色关联的虚拟机加入域。当然,加入域的过程会强制重启。而且,当扩大规模时,这很好。但是,在缩小规模时,我们希望自动从域中删除机器 AD 帐户。我看不到在 Azure 自动缩放中执行“之前或之后”事件的方法。当前的处方是覆盖角色 OnStop 事件。但是,无法判断这是简单的重新启动还是实际的释放。当然,我自己也可以侵入一个进程。
但是,还有其他人在这样做吗?你如何优雅地做到这一点?
我们将与我们的云服务角色关联的虚拟机加入域。当然,加入域的过程会强制重启。而且,当扩大规模时,这很好。但是,在缩小规模时,我们希望自动从域中删除机器 AD 帐户。我看不到在 Azure 自动缩放中执行“之前或之后”事件的方法。当前的处方是覆盖角色 OnStop 事件。但是,无法判断这是简单的重新启动还是实际的释放。当然,我自己也可以侵入一个进程。
但是,还有其他人在这样做吗?你如何优雅地做到这一点?
更新 了重新表述这个问题......当您拥有基于 PaaS 的角色实例并且正在域加入到 IaaS 域控制器时,管理机器身份的最佳方法是什么。
恕我直言,可以采用两种方法:一种被动方法,即采用 PaaS 角色实例的清单,然后将更改应用于 DC;以及一种主动方法,在关闭时,角色实例需要主动通知 DC 他们正在被删除。
对于被动解决方案,最好的选择可能是通过“获取部署”服务管理 API 定期查询 PaaS 云服务拓扑的进程。对该操作的响应包括所有当前角色实例及其状态的列表。
主动解决方案需要将代码放入 RoleEntryPoint 中,该代码将主动向 DC 发送状态警报通知消息,以便可以删除角色实例。对于这种方法,您可以陷入任意数量的钩子:RoleEnvironment.Changing、RoleEnvironment.Changed、RoleEnvironment.Stopping、RoleEnvironment.OnStop。
任何一种方法的挑战都在于区分角色实例的取消配置与仅重新启动角色实例(例如来宾操作系统更新)。