gpt4 book ai didi

c# - 如何编写 Azure 中 CloudService 实例的预热脚本?

转载 作者:行者123 更新时间:2023-11-30 15:55:49 25 4
gpt4 key购买 nike

我有一个 CloudService 经典应用程序,有 2 个实例,我将其称为 bob_app_001 和 bob_app_002,每个 BobApp 中有 5 个实例。

该应用程序是一个 C# Api,它有一个端点,我们用它来监视 ~/ping。

我目前的部署方式是从流量管理器中取出一项服务,让流量耗尽,然后 VIP 将暂存交换到生产槽,然后重新添加到流量管理器。这里的问题是,随着服务自行启动,前几个请求总是很慢。我试图通过在将池重新投入循环之前点击 ping 端点来旋转所有与 Web 相关的内容来避免这种情况。

如何编写脚本从 bob_app_001 获取所有应用程序的 url,然后我可以在 ping 端点上循环调用每个应用程序的 Invoke-WebRequest 以预热服务,然后在 VIP 交换后将其放回 TrafficManager。

最佳答案

从 bob_app_001 获取应用程序的所有网址这将是棘手的部分,尤其是在没有到达应用程序内部并以某种方式公开 URL 的情况下(取决于路由的设置方式)

我建议改用应用程序初始化模块

要启用该模块,您需要在 web.config 中创建一个 applicationInitialization 部分,您可以在其中定义要开始初始化任务的 URL。

<system.webServer>  
<applicationInitialization>
<add initializationPage="/app/init" />
</applicationInitialization>
<system.webServer>

然后是一个轻量级 Controller 来进行初始化:

public class InitController : ApiController
{
[Route("/app/init")]
public IHttpActionResult Index()
{
//do your initialisation / warmup here

return Ok();
}
}

我在这个示例中省略了任何安全概念,但最好限制应用程序内对 /app/init 的访问(并且仅运行一次)

设置完成后,部署槽之间的交换操作将在“app/init”url 下的代码完成后完成。

关于c# - 如何编写 Azure 中 CloudService 实例的预热脚本?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47923150/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com