Azure 事件网格 Python
将以下提示词粘贴到你的 AI 对话框中:
请根据 https://skillhub.cn/install/skillhub.md,安装 @org-02qudk26/azure-eventgrid-py。
技能介绍
要解决什么问题
在 Azure 上把「谁产生了什么事件、该通知谁」从业务代码里拆出去,通常需要统一的事件路由层,而不是在每个服务里手写 HTTP 回调链。Event Grid 提供发布/订阅语义;Python 侧若缺少一致的鉴权、客户端生命周期与事件格式约定,本地开发与生产托管标识之间也容易反复改代码。
技能覆盖的核心能力
本技能围绕 Azure Event Grid Python SDK,说明如何用 Python 发布与路由事件:
- 事件格式:优先
CloudEvent(Cloud Events 1.0,互操作友好);Azure 原生场景可用EventGridEvent。 - 鉴权:强调
DefaultAzureCredential,本地(Azure CLI / VS Code 等)与云端(托管标识、工作负载标识)同一套写法;生产可通过AZURE_TOKEN_CREDENTIALS收紧凭据链,避免长期依赖连接字符串或 API 密钥。 - 客户端用法:同步用
with (...),异步用async with包裹客户端,并对azure.identity.aio的凭据同样使用上下文管理器,确保 HTTP 传输与令牌缓存被释放。 - 扩展场景:含异步客户端、Event Grid Namespaces(拉取式投递)、批量发布、有意义的
subject与事件类型以便过滤与路由。
适用边界与注意点
- 同一调用路径内 不要混用 同步
azure.xxx与azure.xxx.aio异步客户端,模块内选一种模式并保持一致。 - Event Grid 自带重试,应用侧仍需按业务语义处理幂等与重复投递。
- 非核心能力与生产检查清单见技能内
references/capabilities.md;次要/高级示例见references/non-hero-scenarios.md。
使用场景
- 订单或库存等服务状态变更后,用 Python 向 Event Grid 主题批量发布 CloudEvent,供多个订阅端按类型过滤。
- 在 Azure 函数或容器应用中接入 Event Grid,需要与本地开发共用 DefaultAzureCredential 鉴权写法。
- 业务系统需同时兼容 Cloud Events 1.0 与 Event Grid 原生 Schema,按场景选择 CloudEvent 或 EventGridEvent 发布。
- 高吞吐出站场景下,用异步客户端向命名空间主题发布,并配合 Event Grid Namespaces 的拉取式投递消费。
适合人员
- 在 Azure 上维护多订阅者出站链路的后端工程师,希望统一 Python 发布端鉴权与客户端生命周期写法。
- 负责企业事件总线与 Cloud Events 互操作的平台工程师,需在 Python 中切换 CloudEvent 与 EventGridEvent。
- 编写异步、高并发事件发布路径的 Python 服务开发者,需避免同步与 aio 客户端混用。
- 从本地 Azure CLI 开发迁移到托管标识生产环境的人,希望减少连接字符串与 API 密钥依赖。