每次运行更新命令时,都会删除最后一个缩放规则、自定义类型、cron 作业和内存利用率百分比集
更新命令执行并覆盖之前的更新,因为 Azure 容器应用程序已创建。我想在创建后更新它,使用两个或多个缩放规则(仅使用一个脚本)。如何添加缩放规则(两种自定义类型,一种用于 Cron 作业,另一种用于内存利用率)?
如何将它们添加到之前创建的 Azure 容器应用程序中,是否存在另一种在不使用更新命令的情况下添加缩放规则的解决方案(Azure CLI 或 Az Modules,其他解决方案)?
或者,如果在 Azure 容器应用程序之后添加多个缩放规则,是否根本无法创建它?
例如,如果我再次运行此命令来添加另一个缩放规则,它将覆盖前一个规则。如果可能的话,如何解决这个问题?
az containerapp update -n $name -g $rg --scale-rule-name $ruleName --scale-rule-type $customRuleType --scale-rule-metadata start=$start end=$end timezone=$timezone desiredReplicas=$desiredReplicas
使用 Azure 容器应用程序时,
az containerapp update
命令有一个限制,即它会在每次执行时完全替换 scale
部分。此行为可能会使管理多个扩展规则变得棘手,因为通过此命令添加新规则将覆盖任何先前配置的规则。
为了解决这个问题,您可以通过使用 YAML 配置文件来有效管理扩展规则。首先将 Azure 容器应用程序的当前配置导出到 YAML 文件。这可确保现有设置或规则不会丢失。
az containerapp show -n sample-app -g arkorg --output yaml > containerapp-config.yaml
打开导出的
containerapp-config.yaml
并找到 scale
部分。修改此部分以包含您需要的所有缩放规则。
scale:
minReplicas: 1
maxReplicas: 10
rules:
- name: cron-rule
custom:
type: cron
metadata:
start: "0 0 * * *"
end: "0 1 * * *"
timezone: "UTC"
desiredReplicas: "2"
- name: memory-rule
custom:
type: memory
metadata:
type: "Utilization"
value: "75"
并且做
az containerapp update -n sample-app -g arkorg --yaml containerapp-config.yaml
目前,Azure CLI 不支持直接通过单个命令附加缩放规则。每次执行
az containerapp update
都会完全替换现有的 scale
部分。目前,通过 YAML 文件管理规模规则是最可靠的方法。