已白名单IP仍无法触发?Azure Function与Service Bus Topic防火墙故障
Azure Function Service Bus 触发器防火墙配置后无法触发问题
场景与问题
- Azure Function App 采用 Service Bus Topic Message v2 触发器
- 未配置防火墙规则时,触发器运行完全正常
- 为 Service Bus 命名空间配置防火墙规则后,已执行以下操作,但触发器完全无法触发(无 Service Bus 订阅投递记录,Function 无任何请求日志):
- 将 Function App 的所有出站/入站 IP 加入 Service Bus 防火墙白名单
- 启用 Service Bus 命名空间网络设置中的「允许受信任的 Microsoft 服务」选项
触发器代码
@app.function_name(name="consume_event") @app.service_bus_topic_trigger( arg_name="message", topic_name=TOPIC_NAME, connection="SERVICE_BUS_CONN_STR", # 存储主题访问策略连接字符串的应用设置 subscription_name=SUBSCRIPTION_NAME ) def consume_event(message: func.ServiceBusMessage):
变量说明
TOPIC_NAME、SUBSCRIPTION_NAME:对应 Service Bus 主题和订阅名称的环境变量SERVICE_BUS_CONN_STR:存储 Service Bus 主题只读访问策略主连接字符串的应用设置(环境变量)
疑问
为何完成上述防火墙配置后,Function 触发器仍无法正常触发?
编辑补充
解决方案可参考 Service Bus 网络相关文档,需创建带有 Microsoft.web/ServerFarm 子网委派的虚拟网络,并将 Service Bus 与 Function App 均连接至该虚拟网络/子网。
内容的提问来源于stack exchange,提问作者Mawu Ena
相关产品推荐
相关产品推荐

