如何使用 Bicep 为 Azure Front Door 路由激活压缩?

How to activate compression for Azure Front Door routes using Bicep?

我正在使用 Azure Front Door Standard/Premium 并且已经通过 Azure 门户为我的 UI 路由手动启用压缩。我想将此配置映射为带有 Bicep 的 IaC。但是,没有关于如何执行此操作的适当文档。我的尝试:

  1. 我检查了Azure Bicep templates for Azure Front Door routes。在这里我找到了一个属性 compressionSettings: any()的引用,其用法没有进一步说明。
  2. 我的下一个方法是通过“导出模板”将门户中的手动配置导出为 ARM,然后将其编译为 Bicep。但是,compressionSettings 属性 始终保持值 {}。如果我使用值 compressionSettings: {} 部署我的二头肌模板,则门户中的压缩将保持禁用状态。

那么如何使用 Bicep 为 Azure Front Door 启用压缩?

我在azure-quickstart-templates中通过手动搜索找到了解决方案。在页面底部:Microsoft.Cdn profiles/afdEndpoints/routes 2020-09-01, I found the template Front Door Standard/Premium。分析完这里的main.bicep文件,压缩设置必须设置如下:

compressionSettings: {
   contentTypesToCompress: [
     'application/javascript'
     'application/json'
     'font/woff'
     'font/woff2'
     'image/svg+xml'
     'image/x-icon'
     'text/css'
     'text/html'
   ]
   isCompressionEnabled: true
}

在我整个代码的一部分中,它看起来像这样:

var contentTypesToCompress = [
  'application/javascript'
  'application/json'
  'font/woff'
  'font/woff2'
  'image/svg+xml'
  'image/x-icon'
  'text/css'
  'text/html'
]

resource profile 'Microsoft.Cdn/profiles@2020-09-01' = {
  name: 'frontDoor'
  location: 'global'
  sku: {
    name: 'Premium_AzureFrontDoor'
  }
  tags: tags
}

resource endpoint 'Microsoft.Cdn/profiles/afdEndpoints@2020-09-01' = {
  parent: profile
  name: 'endpoint'
  location: 'Global'
  tags: tags
  properties: {
    originResponseTimeoutSeconds: 60
    enabledState: 'Enabled'
  }
}

resource route 'Microsoft.Cdn/profiles/afdEndpoints/routes@2020-09-01' = {
  parent: endpoint
  name: 'route'
  properties: {
    queryStringCachingBehavior: 'IgnoreQueryString'
    compressionSettings: {
      contentTypesToCompress: contentTypesToCompress
      isCompressionEnabled: true
    }
    ...
  }
  dependsOn: [
    profile
  ]
}

由于到目前为止还没有真正记录在案,我认为在 Q&A-style 中分享它会很有用。