当前位置: 首页 > 知识库问答 >
问题:

Azure CLI-配置应用服务日志

毋修为
2023-03-14

我试图使用Azure CLI配置Azure Web应用的应用程序日志记录(Blob)和Web服务器日志记录(存储)设置。

我正在使用以下命令创建存储容器:

az存储容器创建--帐户名StorageAccName--名称ContainerName--身份验证模式登录

但是,我无法链接Web应用中的存储设置以使用新容器。

我在参考留档里找不到任何东西。

https://docs.microsoft.com/en-us/cli/azure/webapp/log?view=azure-cli-latest#az_webapp_log_config

有人有聪明的方法来配置此设置吗?谢谢

根据krishg的答案更新了最终解决方案。

$webAppName = "containerName"
$accountName = "accountName"
$accountKey = "accountKey"

$containerExists =  az storage container exists --name $webAppName --account-name $accountName --auth-mode login | ConvertFrom-Json
"Container Exists: " + $containerExists.exists

if (!$containerExists.exists)
{
    $container = az storage container create --account-name $accountName --name $webAppName --auth-mode login | ConvertFrom-Json
    "Container Created: " + $container.created
}

$sas = az storage container generate-sas --account-name $accountName --expiry "2220-01-01" --name $webAppName --permissions dlrw --account-key $accountKey --start "2020-11-25T12:15:09Z"
$sasUrl = '"https://' + $accountName + '.blob.core.windows.net/' + $webAppName + '?' + $sas.Trim('"') + '"'
"Storage Account Container Shared Access Signature (SAS) URL: "
$sasUrl

$appServiceLogSettings = az webapp log show --name $webAppName --resource-group $resourceGroup | ConvertFrom-Json

$webapplog = az resource update --ids $appServiceLogSettings.id --set properties.applicationLogs.azureBlobStorage.sasUrl=$sasUrl, properties.applicationLogs.azureBlobStorage.retentionInDays="365", properties.applicationLogs.azureBlobStorage.level="Error", properties.httpLogs.azureBlobStorage.sasUrl=$sasUrl, properties.httpLogs.azureBlobStorage.retentionInDays="365", properties.httpLogs.azureBlobStorage.enabled="true", properties.detailedErrorMessages.enabled="true", properties.failedRequestsTracing.enabled="true" | ConvertFrom-Json
"Application Logging (Blob) Level: " + $webapplog.properties.applicationLogs.azureBlobStorage.level
"Application Logging (Blob) RetentionInDays: " + $webapplog.properties.applicationLogs.azureBlobStorage.retentionInDays
"Application Logging (Blob) SAS URL: " + $webapplog.properties.applicationLogs.azureBlobStorage.sasUrl

"Web Server Logging (Blob) Enabled: " + $webapplog.properties.httpLogs.azureBlobStorage.enabled
"Web Server Logging (Blob) RetentionInDays: " + $webapplog.properties.httpLogs.azureBlobStorage.retentionInDays
"Web Server Logging (Blob) SAS URL: " + $webapplog.properties.httpLogs.azureBlobStorage.sasUrl

"Detailed Error Messages: " + $webapplog.properties.detailedErrorMessages.enabled
"Failed Requests Tracing: " + $webapplog.properties.failedRequestsTracing.enabled

共有1个答案

司马高明
2023-03-14

我同意,没有在az webapp log config中设置存储帐户的选项有点令人沮丧。但您可以执行以下操作来在日志配置中设置存储设置。

  • 使用az存储容器生成sas,生成具有所需到期的存储容器的sas令牌。下面只是我的例子。
$sas = az storage container generate-sas --account-name mystorageaccount --expiry 2022-01-01 --name mycontainer --permissions dlrw
$sasUrl = 'https://mystorageaccount.blob.core.windows.net/mycontainer?' + $sas.Trim('"')
$logConfigResourceId = az webapp log show --name MyWebApp --resource-group MyResourceGroup --query 'id' -o json
  • 使用上面使用az resource update--Set生成的sas令牌设置日志配置的属性
az resource update --ids $logConfigResourceId --set properties.applicationLogs.azureBlobStorage.sasUrl=$sasUrl
az resource update --ids $logConfigResourceId --set properties.httpLogs.azureBlobStorage.sasUrl=$sasUrl
az resource update --ids $logConfigResourceId --set properties.httpLogs.azureBlobStorage.enabled=true

您还可以通过逗号分隔列表将所有属性更新合并到一个更新中,例如:

az resource update --ids $logConfigResourceId --set properties.applicationLogs.azureBlobStorage.sasUrl=$sasUrl,properties.httpLogs.azureBlobStorage.sasUrl=$sasUrl,properties.httpLogs.azureBlobStorage.enabled=true

要了解日志配置资源的结构如果你想更新任何其他设置,你可以运行az webapp log show--name MyWebApp--resource-group MyResourceGroup

 类似资料:
  • 介绍常用的服务配置。 云联壹云 平台支持基于climc命令修改常用服务配置。 说明 请确保First Node节点已正确初始化climc工具,配置步骤请参考CLIMC工具 通用配置命令如下 目前支持配置的服务有keystone、glance、region2、yunionapi、common等。 命令模式 在命令行下输入climc并带额定的参数获取相应的结果。 # 查看服务的配置信息 $ climc

  • 移动应用推送服务配置 使用前说明 开启服务 iOS应用服务配置(必选) Android应用服务配置(可选) 开始使用服务 移动应用推送服务配置 更新时间:2018-07-04 00:03:32 使用前说明 移动应用推送服务属于Link Develop提供的官方服务之一,帮助App快速集成移动推送的功能,在实现高效、精确、实时的移动推送的同时,极大地降低了开发成本。开发者在使用服务前,需要先在控制台

  • 我正在尝试在ASP中配置自定义日志记录。NET核心MVC应用程序。该应用程序托管在Linux上的Azure应用程序服务上(免费层)。日志文件没有出现,我做错了什么? 我的配置: 以下ASP。NET Core日志记录文档(https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging/?view=aspnetcore-3.1#azu

  • 我们来看看如何配置服务器端的 SSH 访问。 本例中,我们将使用 authorized_keys 方法来对用户进行认证。 同时我们假设你使用的操作系统是标准的 Linux 发行版,比如 Ubuntu。 首先,创建一个操作系统用户 git,并为其建立一个 .ssh 目录。 $ sudo adduser git $ su git $ cd $ mkdir .ssh && chmod 700 .ssh

  • 【什么是squid】 Squid是比较知名的代理软件,它不仅可以跑在linux上还可以跑在windows以及Unix上,它的技术已经非常成熟。目前使用Squid的用户也是十分广泛的。Squid与Linux下其它的代理软件如Apache、Socks、TIS FWTK和delegate相比,下载安装简单,配置简单灵活,支持缓存和多种协议。 Squid的缓存功能相当好用,不仅可以减少带宽的占用,同样也大

  • 【什么是FTP】 也许你对FTP不陌生,但是你是否了解FTP到底是个什么玩意?FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为“文传协议”。用于Internet上的控制文件的双向传输。同时,它也是一个应用程序(Application)。用户可以通过它把自己的PC机与世界各地所有运行FTP协议的服务器相连,访问服务器上的大量程序和信息。FTP的主要作用,