Azure云服务-监视部署

本文关键字:监视 部署 服务 Azure | 更新日期: 2023-09-27 18:28:27

网站发布和更新时是否引发事件?

我在global.asax中尝试过Application_End,但似乎没有引发该事件。

Azure云服务-监视部署

我建议同时使用Kudu和Microsoft ASP.NET WebHooks预览版。

Kudu是git部署、WebJobs和Azure网站中各种其他功能背后的引擎(Kudu源代码在GitHub上)

通过Kudu,Azure网站支持Web挂钩。有一个事件"PostDeployment",只要部署完成并得到该部署的结果,就会调用该事件。

Microsoft ASP.NET WebHooks预览版提供了一个通用模型,用于接收和处理来自任何数量的WebHook提供商的WebHooks,包括对Kudu(Azure Web App Deployment)的支持。

因此,您可以使用Kudu WebHooks在部署更新时获得通知。(但这需要使用GitDeploy,而不是其他方式来发布您的网站)。

方法如下:首先安装Microsoft.AspNet.WebHooks.Receivers.Azure Nuget包。将这两行添加到WebApiConfig.Register方法:

    config.InitializeReceiveKuduWebHooks();
    config.InitializeReceiveAzureAlertWebHooks();

然后添加一个处理程序:

public class KuduWebHookHandler : WebHookHandler
{
public KuduWebHookHandler()
{
    Receiver = "kudu";
}
public override Task ExecuteAsync(string generator, WebHookHandlerContext context)
{
    // Convert to POCO type
    KuduNotification notification = context.GetDataOrDefault<KuduNotification>();
    // Get the notification message
    string message = notification.Message;
    // Get the notification author
    string author = notification.Author;
    return Task.FromResult(true);
}
}

然后配置一个秘密,可以验证WebHook请求确实来自Kudu。使用高熵值,例如SHA256散列或类似的值,您可以从http://www.freeformatter.com/hmac-generator.html.此外,通过Azure门户设置它们,而不是在Web.config文件中对它们进行硬编码此外,通过Azure门户设置它们,而不是在Web.config文件中对它们进行硬编码。

这里有一篇关于这个主题的更完整的帖子(http://blogs.msdn.com/b/webdev/archive/2015/10/04/receive-webhooks-from-azure-alerts-and-kudu-azure-web-app-deployment.aspx)

希望这能有所帮助顺致敬意,Stéphane

我想明白了。在Application_Start事件中,我绑定

RoleEnvironment.Stopping += RoleEnvironmentStopping;
private void RoleEnvironmentStopping(object sender, RoleEnvironmentStoppingEventArgs e)
{
       // do something ...
}