Azure Function部署于容器应用,如何获取Serverless SignalR的signalr_extension系统密钥?
解决Azure容器应用(ACA)中SignalR扩展密钥无法获取的问题
当把Azure Function从Function App迁移到ACA后,确实会遇到SignalR自动生成的signalr_extension系统密钥无法直接在门户查看的问题,以下是几种可行的解决办法:
方法1:手动配置自定义扩展密钥(推荐生产环境使用)
- 打开你的Serverless SignalR资源,进入密钥页面,复制主连接字符串或辅助连接字符串。
- 在ACA的容器应用配置中,添加环境变量
AzureSignalRConnectionString,值为刚才复制的SignalR连接字符串。 - 自己生成一个安全的随机字符串(比如用GUID工具生成),在ACA中添加环境变量
SignalRExtensionKey,将这个字符串设为值。 - 配置SignalR上游URL时,把这个自定义密钥作为
code参数加入,格式为:https://<你的ACA函数域名>/runtime/webhooks/signalr?code=<你的自定义扩展密钥>
方法2:通过Azure CLI提取系统生成的密钥
- 执行以下Azure CLI命令,查看ACA环境中的所有密钥:
az containerapp env show --name <你的ACA环境名称> --resource-group <你的资源组名称> --query "properties.configuration.secrets" - 命令返回的JSON结果里,找到
signalr_extension对应的value字段,复制该值即可用于SignalR上游URL配置。
方法3:临时绕过密钥验证(仅测试场景)
- 如果是测试环境,可临时修改Function的SignalR触发逻辑,移除对
code参数的验证,但这种做法会带来安全隐患,绝对不建议在生产环境使用。
内容的提问来源于stack exchange,提问作者Simon
相关产品推荐
相关产品推荐

