首页 文章

Azure WebJob SDK,如何使用Azure Table而不是AzureWebJobsDashboard中定义的Blob存储

提问于
浏览
1

据我所知,WebJob SDK使用AzureWebJobsDashboard连接中定义的blob存储来进行Dashboard日志记录 .

有没有办法让WebJob SDK使用Azure存储表而不是Blob存储来存储它登录到AzureWebJobsDashboard连接的任何仪表板?

Update 1: 本文介绍了日志输出条目在Azure表中的显示方式:

https://docs.microsoft.com/en-us/azure/app-service-web/websites-dotnet-webjobs-sdk-storage-queues-how-to#logs

在Azure表中,Console.Out和Console.Error日志如下所示:

enter image description here

如何将WebJob SDK配置为如上所述登录Azure表?

1 回答

  • 1

    简而言之:不 .

    据我所知,Azure WebJobsDashboard主要使用AzureWebJobsDashboard存储帐户来存储来自WebJobs控制台的日志 . 此连接字符串是可选的,仅在您计划使用仪表板监视WebJobs时才需要 .

    WebJob运行时在此存储帐户下创建两个容器,其名称为“azure-webjobs-dashboard”和“azure-jobs-host-archive” . webJob仪表板使用azure-webJobs-dashboard容器来存储主机和执行 endpoints (功能)详细信息 . Azure-jobs-host-archive用作执行日志的存档 .

    webjob SDK不支持将日志存储到表中 .

    如果您仍想在表中记录信息,我建议您无法设置AzureWebJobsDashboard连接字符串并在Web作业函数中编写一些代码以自行将消息存储到表存储中 .


    更新:

    根据您发布的文章,如果您的Web应用程序启用了Web应用程序诊断日志的应用程序日志记录,则会自动将webjob日志写入azure存储帐户 .

    enter image description here

    但是,应用程序日志记录到表存储功能已删除了新门户 .

    如果要启用它,则应使用powershell .

    更多细节,您可以参考以下步骤:

    1.创建一个表来存储日志数据 . 我建议你可以使用azure storage explorer .

    enter image description here

    2.生成SAS网址 .

    enter image description here

    3.创建后,您可以复制sas网址 .

    1. Install azure cli .

    5.运行命令:

    Login-AzureRmAccount
    
    $PropertiesObject = @{applicationLogs=@{azureTableStorage=@{level="Verbose";sasUrl="yourtableSASurl"}}}
    
    Set-AzureRmResource -PropertyObject $PropertiesObject -ResourceGroupName "yourresourcegroupname" -ResourceType Microsoft.Web/sites/config -ResourceName "webappname/logs" -ApiVersion 2015-08-01 -Force
    

    然后,您可以在表中找到您的日志消息 .

    enter image description here

    但是,我们通常不建议将表用于日志数据 - 它可能导致仅附加模式在规模上不能有效地用于表存储 .

    更多细节,你可以参考这个reply .

相关问题