用途:这是 Azure Event Grid 的 Python SDK,面向构建事件驱动应用,提供发布/订阅式的事件路由能力,可用于发布事件与处理 CloudEvents。
主要能力:支持两种事件格式——CloudEvents 1.0(CloudEvent 类,推荐、可互操作)和 Event Grid 原生格式(EventGridEvent 类)。可发布单条或多条事件(批量),支持同步客户端 EventGridPublisherClient 与异步客户端 azure.eventgrid.aio 下的 EventGridPublisherClient。除常规自定义主题外,还支持 Event Grid 命名空间主题的拉取投递,通过 namespace_topic 参数指定主题名。
安装:pip install azure-eventgrid azure-identity。
环境变量:EVENTGRID_TOPIC_ENDPOINT(主题发布)、EVENTGRID_NAMESPACE_ENDPOINT(命名空间操作)、AZURE_TOKEN_CREDENTIALS(仅在以 DefaultAzureCredential 用于生产时设置,值为 prod)。
认证:优先使用 DefaultAzureCredential,可在本地(Azure CLI / VS Code / Developer CLI)和 Azure 中(托管标识、工作负载标识)通用而无需改代码;避免使用连接字符串、账户或 API 密钥。生产环境设置 AZURE_TOKEN_CREDENTIALS=prod 或指定凭据以约束凭据链。
使用方式:同步用 with Client(...) as client: 包装客户端,异步用 async with 并配合 azure.identity.aio 的异步凭据,以便确定性释放 HTTP 传输、套接字和令牌缓存。发送示例:client.send(event);命名空间主题:client.send(event, namespace_topic=topic_name)。
限制与最佳实践:同步与异步客户端不要混用;新应用建议用 CloudEvents;批量发布时宜批量事件;填写有意义的 subject 以便过滤;高吞吐场景可用异步客户端;注意 Event Grid 内置重试;为路由与过滤设置合适的事件类型。
参考文件:references/capabilities.md 含额外能力、操作组覆盖与生产清单;references/non-hero-scenarios.md 含次级/高级场景示例。