在 azure 中使用 terraform 为应用服务创建自动缩放规则时出错

Posted

技术标签:

【中文标题】在 azure 中使用 terraform 为应用服务创建自动缩放规则时出错【英文标题】:Error creating auto-scaling rule for app service using terraform in azure 【发布时间】:2020-02-27 14:59:57 【问题描述】:
resource "azurerm_monitor_autoscale_setting" "test" 
  name                = "AutoscaleSetting"
  resource_group_name = "$azurerm_resource_group.main.name"
  location            = "$azurerm_resource_group.main.location"
  target_resource_id  = "$azurerm_app_service_plan.main.id"

 profile 
name = "defaultProfile"

capacity 
  default = 1
  minimum = 1
  maximum = 10


rule 
  metric_trigger 
    metric_name        = "Percentage CPU"
    metric_resource_id = "$azurerm_app_service_plan.main.id"
    time_grain         = "PT1M"
    statistic          = "Average"
    time_window        = "PT5M"
    time_aggregation   = "Average"
    operator           = "GreaterThan"
    threshold          = 80
  

  scale_action 
    direction = "Increase"
    type      = "ChangeCount"
    value     = "1"
    cooldown  = "PT1M"
  


rule 
  metric_trigger 
    metric_name        = "Percentage CPU"
    metric_resource_id = "$azurerm_app_service_plan.main.id"
    time_grain         = "PT1M"
    statistic          = "Average"
    time_window        = "PT5M"
    time_aggregation   = "Average"
    operator           = "LessThan"
    threshold          = 80
  

  scale_action 
    direction = "Decrease"
    type      = "ChangeCount"
    value     = "1"
    cooldown  = "PT1M"
  
   

我尝试在 azure 上的 terraform 中设置自动缩放规则。这样做时会引发此错误。请帮忙。这是什么错误,如何解决?

错误:创建自动缩放设置“AutoscaleSetting”时出错(资源 组“sm-prod-resources”): Insights.AutoscaleSettingsClient#CreateOrUpdate:响应失败 请求:StatusCode=400 - 原始错误:autorest/azure:服务 返回错误。状态 = 400 代码 =“不支持的度量标准” Message="异常类型 'Microsoft.WindowsAzure.Management.Monitoring.MonitoringServiceException' 被扔了。”

【问题讨论】:

你能从你的 tf 文件中发布你的 terraform 资源块吗? 还有问题吗?它解决了你的问题吗?请让我知道是什么状态。 【参考方案1】:

错误表明它是一个UnsupportedMetric。根据 Terraform 中的文档,它是这样描述的:

metric_name - (必需)定义什么的度量的名称 规则监视器,例如虚拟机规模集的百分比 CPU 和应用服务计划的 CpuPercentage。

我认为这只是你犯的一个错误,带有“Percentage CPU”的名称是虚拟机规模集,你需要将它更改为“CpuPercentage”,它是你的应用服务计划想。详情请见metric_name。

【讨论】:

@SiddhiMorajkar 好吧,那么请接受它作为答案。 @SiddhiMorajkar 为什么在解决您的问题后不接受我的回答?您只需点击按钮,这不难。 我遇到了完全相同的问题。在本地,通过使用度量名称“ScaleIn”和“ScaleOut”,我能够毫无问题地运行 terraform 计划。但是当我在管道中运行 terraform apply 时,它会失败 @ccoutinho 也许你可以添加一个新的问题与新的细节。

以上是关于在 azure 中使用 terraform 为应用服务创建自动缩放规则时出错的主要内容,如果未能解决你的问题,请参考以下文章

在 Terraform 中将 SSL 证书附加到 Azure 应用程序网关

如何配置 Azure 应用服务以使用 terraform 从 ACR 中提取图像?

如何使用 Terraform 在管理组范围上定义和分配 Azure 策略?

使用 Terraform 在 Azure AD 应用注册中的应用程序 ID URI 引发错误

使用 Terraform 在 Azure 上部署应用服务出现未经授权的错误

Terraform - 长时间运行 Azure 部署错误