【Azure Container App】配置容器应用的缩放规则 Managed Identity 连接中国区 Azure Service Bus 问题

简介: 本文介绍了在 Azure Container Apps 中配置基于自定义 Azure Service Bus 的自动缩放规则时,因未指定云环境导致的域名解析错误问题。解决方案是在扩展规则中添加 `cloud=AzureChinaCloud` 参数,以适配中国区 Azure 环境。内容涵盖问题描述、原因分析、解决方法及配置示例,适用于使用 KEDA 实现事件驱动自动缩放的场景。

问题描述

为Azure Container App配置自动缩放规则,使用自定义 Azure Service Bus作为缩放规则的数据源。当消息总数每增长100,就增加一个Replica。相反,则减少一个Replica。

而中国区的Container App在配置使用管理标识(Managed Identity)进行认证时候,会出现如下错误:

ERROR:invalid metrics (1 invalid out of 5), first error is: failed to get ********-queue external metric value: failed to get********-queueexternal metric

unable to fetch metrics from external metrics api: rpc error: code = unknown desc = error

dial tcp: lookup ********-queue.servicebus.windows.net on xxxxxxxx : no such host"

 

问题解答

根据错误信息,它的原因就是配置Managed Identity时候没有指定Azure 环境,所以默认把Service Bus资源连接到Global Azure,所以报错无法解析域名:lookup ********-queue.servicebus.windows.net on xxxxxxxx : no such host 。

 

为解决此问题,需在 Azure Container Apps 的扩展规则中添加 cloud 参数,指定为 AzureChinaCloud

这是 KEDA(Kubernetes-based Event Driven Autoscaling)在中国 Azure 环境下的必要配置。

 

只需要在配置中添加 "cloud=AzureChinaCloud" 就可解决问题。

 

完成的配置命令如下:

# 使用used identity 
  az containerapp create --resource-group <resource group name> --name <container app name> --environment <container app environment name> 
--user-assigned 'user managed identity resource id'
--scale-rule-name azure-servicebus-test1 
--scale-rule-type azure-servicebus 
--scale-rule-metadata "namespace=sb-store-demo-12622" "queueName=orders" "messageCount=100" "cloud=AzureChinaCloud" "endpointSuffix=servicebus.chinacloudapi.cn"
--scale-rule-identity 'user managed identity resource id' 
  
  # 使用连接字符串 connection string
  az containerapp create --resource-group <resource group name> --name <container app name> --environment <container app environment name>  
--scale-rule-name azure-servicebus-test1   
--scale-rule-type azure-servicebus 
--scale-rule-metadata "namespace=sb-store-demo-12622" "queueName=orders" "messageCount=100"
--secrets "service bus connection string value"
--scale-rule-auth "connection=connection-string-secret"

 

参考资料

在 Azure 容器应用中设置缩放规则:https://docs.azure.cn/zh-cn/container-apps/scale-app?pivots=azure-cli#custom

KEDA Azure Service Bus: https://keda.sh/docs/2.17/scalers/azure-service-bus/

 

 





当在复杂的环境中面临问题,格物之道需:浊而静之徐清,安以动之徐生。 云中,恰是如此!

相关文章
|
12月前
|
存储 安全 数据安全/隐私保护
【Azure Function App】在Function App中使用System Managed Identity访问Storage Account
本文介绍了如何在Azure Function中使用托管身份(Managed Identity)替代AzureWebJobsStorage连接函数应用到存储账户,以提高安全性并减少Access Key的使用。具体步骤包括:1) 启用系统分配的身份;2) 为函数应用授予存储访问权限,添加必要角色(如Storage Blob Data Contributor);3) 配置`AzureWebJobsStorage__blobServiceUri`参数指定Blob Service Uri。完成后删除旧配置,即可通过Managed Identity访问Storage Account。
371 20
|
8月前
|
缓存 Ubuntu Docker
Ubuntu环境下删除Docker镜像与容器、配置静态IP地址教程。
如果遇见问题或者想回滚改动, 可以重启系统.
515 16
|
8月前
|
数据建模 应用服务中间件 PHP
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
本示例演示如何通过Docker挂载同一宿主目录至Nginx与PHP容器,实现PHP项目运行环境配置。需注意PHP容器中监听地址修改为0.0.0.0:9000,并调整Nginx配置中fastcgi_pass指向正确的IP与端口。同时确保Nginx容器中/var/www/html权限正确,以避免访问问题。
配置nginx容器和php容器协同工作成功,使用ip加端口的方式进行通信
|
9月前
|
Java Shell Maven
【Azure Container App】构建Java应用镜像时候遇无法编译错误:ERROR [build 10/10] RUN ./mvnw.cmd dependency:go-offline -B -Dproduction package
在部署Java应用到Azure Container App时,构建镜像过程中出现错误:“./mvnw.cmd: No such file or directory”。尽管项目根目录包含mvnw和mvnw.cmd文件,但依然报错。问题出现在Dockerfile构建阶段执行`./mvnw dependency:go-offline`命令时,系统提示找不到可执行文件。经过排查,确认是mvnw文件内容异常所致。最终通过重新生成mvnw文件解决该问题,镜像成功构建。
468 1
|
容器
【Azure Container App】在消耗性的Container App Environmnet中无法查看当时正在使用多少CPU多少实例数的替代方案
在 Azure Container Apps 中使用 Consumption 消耗型环境时,无法通过门户查看当前核心 (CPU) 和实例使用情况。这是因为消耗型工作负载配置文件的设计所致。若需查看使用状态,可使用 az cli 命令 `az containerapp env list-usages` 获取详细信息,包括 Current Cores 数量。文档还提供了参考资料链接以帮助用户深入了解相关命令用法。
243 17
|
网络协议 容器
【Container App】部署Contianer App 遇见 Failed to deploy new revision: The Ingress's TargetPort or ExposedPort must be specified for TCP apps.
Failed to deploy new revision: The Ingress's TargetPort or ExposedPort must be specified for TCP apps.
221 27
|
6月前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
1081 139
|
6月前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
518 137
|
6月前
|
数据采集 JavaScript 前端开发
开发比分App?你缺的不是程序员
开发体育比分App,关键不在代码,而在懂体育、懂数据、懂用户。明确定位、理清需求、选好数据源,再找专业的产品、数据与技术人才协同,才能少走弯路。程序员最后入场,效率最高。
335 154