如何以编程方式为KeyVault添加webhook事件订阅
核心结论
这类直接绑定到Azure资源的事件订阅由Event Grid服务统一管理,你在Portal操作时不需要创建Event Grid Domain/Topic,是因为Key Vault属于Azure官方提供的内置事件源,本身直接支持作为Event Grid订阅的绑定scope,无需额外部署事件域/自定义主题资源。
可用SDK说明
你需要使用Event Grid的管理平面SDK完成配置,不要使用Domain相关接口,直接调用事件订阅的通用创建接口,指定scope为目标Key Vault的完整资源ID即可,各主流语言的对应SDK包如下:
- .NET: 使用
Azure.ResourceManager.EventGrid包,调用EventGridSubscriptionCollection.CreateOrUpdateAsync方法,传入Key Vault资源ID作为scope参数 - Python: 使用
azure-mgmt-eventgrid包,初始化EventGridManagementClient后调用event_subscriptions.create_or_update方法,scope参数填Key Vault的完整资源ID - Java: 使用
azure-resourcemanager-eventgrid包,通过EventGridManager.eventSubscriptions().define()方法指定scope为Key Vault资源ID完成创建 - Go: 使用
sdk/resourcemanager/eventgrid/armeventgrid包,调用EventSubscriptionsClient.BeginCreateOrUpdate方法传入Key Vault资源ID即可
创建订阅时,事件类型筛选选择 Microsoft.KeyVault.SecretNearExpiry 即可匹配你需要的「Secret即将过期」事件,端点配置选择WebHook填入你的密钥续期服务地址即可,配置逻辑和Portal操作完全一致。
内容的提问来源于stack exchange,提问作者AnotherHowie
相关产品推荐
相关产品推荐

