gpt4 book ai didi

azure - 应用服务 azurerm_monitor_autoscale_setting

转载 作者:行者123 更新时间:2023-12-03 03:31:57 25 4
gpt4 key购买 nike

我有一个用于应用服务自动缩放的代码。我们有 lower 和 prod env 的通用代码。我需要仅对产品环境应用自动缩放设置。当我计划 tf 时,我遇到错误:

Error: Insufficient profile blocks││ on app-service\create-app-service.tf line 132, in resource"azurerm_monitor_autoscale_setting" "autoscale_setting":│ 132: resource "azurerm_monitor_autoscale_setting" "autoscale_setting" {││ At least 1 "profile" blocks are required.

下面是我的代码:

文件名:create_app_service.tf

resource "azurerm_monitor_autoscale_setting" "autoscale_setting" {

name = "${var.resource_group_name}-ui"
location = var.location
resource_group_name = var.resource_group_name
target_resource_id = azurerm_app_service_plan.app-service-plan.id

dynamic "profile" {
for_each = var.auto_scaleout == true ? [1] : []
content {
name = "${var.resource_group_name}-ui"

capacity {
default = 4
minimum = 3
maximum = 10
}

rule {
metric_trigger {
metric_name = "CpuPercentage"
metric_resource_id = azurerm_app_service_plan.app-service-plan.id
time_grain = "PT1M"
statistic = "Average"
time_window = "PT5M"
time_aggregation = "Average"
operator = "GreaterThan"
threshold = 75
}

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

rule {
metric_trigger {
metric_name = "CpuPercentage"
metric_resource_id = azurerm_app_service_plan.app-service-plan.id
time_grain = "PT1M"
statistic = "Average"
time_window = "PT5M"
time_aggregation = "Average"
operator = "LessThan"
threshold = 25
}

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

notification {
email {
send_to_subscription_administrator = false
send_to_subscription_co_administrator = false
}
}
}

变量:

variable "auto_scaleout" {
type = bool
default = false
}
resource "azurerm_monitor_autoscale_setting" "autoscale_setting" {

name = "${var.resource_group_name}-ui"
location = var.location
resource_group_name = var.resource_group_name
target_resource_id = azurerm_app_service_plan.app-service-plan.id
enabled = var.enable_autoscale

dynamic "profile" {
for_each = var.auto_scaleout == true ? [1] : []
content {
name = "${var.resource_group_name}-ui"
features {}

capacity {
default = 4
minimum = 3
maximum = 10
}

rule {
metric_trigger {
metric_name = "CpuPercentage"
metric_resource_id = azurerm_app_service_plan.app-service-plan.id
time_grain = "PT1M"
statistic = "Average"
time_window = "PT5M"
time_aggregation = "Average"
operator = "GreaterThan"
threshold = 75
}

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

尝试添加功能 block

最佳答案

Error: Insufficient profile blocks:

由于您没有提供 terraform block ,因此发生了错误。如果您另外添加一个 features block ,它还会要求一个 terraform block 。如果未提供,可能会导致“ block 不足”之类的错误。

注意:我建议您添加一个profile block ,因为dynamic block 本身不支持。

我添加了所有预期的 block ,并通过包含基本的默认配置文件来运行,并且能够成功部署它。

terraform {
required_providers {
azurerm = {
source = "hashicorp/azurerm"
version = "=2.99.0" //<- Provide latest version
}
}
}
provider "azurerm" {
features {}

}
resource "azurerm_monitor_autoscale_setting" "test" {
name = "AutoscaleSettingnew"
resource_group_name = "<resource_group_name>"
location = "EastUS"
target_resource_id = "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Web/serverfarms/<appserviceplan>"
profile {
name = "defaultProfile"
capacity {
default = 1
minimum = 1
maximum = 10
}
rule {
metric_trigger {
metric_name = "CPUPercentage"
metric_resource_id = "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Web/serverfarms/<appserviceplan>"
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 = "CpuPercentage"
metric_resource_id = "/subscriptions/<subscriptionID>/resourceGroups/<resourceGroupName>/providers/Microsoft.Web/serverfarms/<appserviceplan>"
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"
}
}
}
}

已执行 terraform init:

enter image description here

已执行 terraform计划:

enter image description here

地形应用:

enter image description here

在门户中启用 auto_scale 设置:

enter image description here

引用Argument_reference

关于azure - 应用服务 azurerm_monitor_autoscale_setting,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74518972/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com