用途
Azure Service Bus 技能用于管理 Azure 服务总线(Azure Service Bus)中的消息队列与发布/订阅主题,帮助用户通过 Azure CLI 完成对命名空间、队列、主题和订阅的查看与操作。
主要能力
该技能提供以下操作能力:
- 列出命名空间:使用
az servicebus namespace list,并以表格形式输出名称、资源组、SKU 与位置等信息。 - 列出队列:使用
az servicebus queue list,可查看队列名称、状态、消息数量与死信消息数量。 - 列出主题:使用
az servicebus topic list,可查看主题名称、状态与订阅数量。 - 列出订阅:使用
az servicebus topic subscription list,可查看指定主题下订阅的名称、状态与消息数量。 - 发送消息到队列:使用
az servicebus queue send,可将 JSON 格式的消息体发送到指定队列。 - 查看(Peek)队列消息:使用
az servicebus queue peek,可在不移除消息的情况下读取指定数量的消息,并可结合 jq 提取消息 ID 与消息体。 - 获取连接字符串:使用
az servicebus namespace authorization-rule keys list,可获取命名空间的主连接字符串。
使用方式
所有操作均通过 Azure CLI 的 az servicebus 命令执行,需要指定命名空间名称与资源组等参数。示例:
- 列出命名空间:
az servicebus namespace list --query '[].{Name:name,ResourceGroup:resourceGroup,Sku:sku.name,Location:location}' -o table - 列出队列:
az servicebus queue list --namespace-name my-sb --resource-group my-rg --query '[].{Name:name,Status:status,MessageCount:messageCount,DeadLetterCount:countDetails.deadLetterMessageCount}' -o table - 列出主题:
az servicebus topic list --namespace-name my-sb --resource-group my-rg --query '[].{Name:name,Status:status,Subscriptions:subscriptionCount}' -o table - 列出订阅:
az servicebus topic subscription list --namespace-name my-sb --resource-group my-rg --topic-name my-topic --query '[].{Name:name,Status:status,MessageCount:messageCount}' -o table - 发送消息到队列:
az servicebus queue send --namespace-name my-sb --resource-group my-rg --queue-name my-queue --body '{"event":"deploy","status":"success"}' - 查看队列消息:
az servicebus queue peek --namespace-name my-sb --resource-group my-rg --queue-name my-queue --max-count 5 | jq '.[] | {messageId, body}' - 获取连接字符串:
az servicebus namespace authorization-rule keys list --namespace-name my-sb --resource-group my-rg --authorization-rule-name RootManageSharedAccessKey --query 'primaryConnectionString' -o tsv
适用场景
该技能适用于以下场景:在命令行环境中快速检查 Azure 服务总线的命名空间、队列、主题与订阅状态;在集成或调试阶段向队列发送测试消息;在不影响消息消费的情况下查看队列中的消息内容;获取连接字符串以便应用程序接入服务总线。
限制与注意事项
- Peek 操作只读取消息而不会移除消息;Receive 操作会移除消息。
- 在发送消息或修改队列/主题之前应先确认。
- 该技能依赖 Azure CLI 环境及相应权限;具体权限要求与安装方式暂未提供。
- 关于定价、平台支持与性能表现等信息暂未提供。