Azure 事件网格 - 资源写入成功 - 按电子邮件地址筛选

Azure Event Grid - Resource Write Success - Filter by email address

Azure 事件网格用于捕获所有 Azure Resource Write Success 活动。我正在尝试按电子邮件地址过滤用户。

data.clamins.name 尝试时以类似方式提供用户名 data.claims.'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name' 过滤器未按预期工作。

是否应该有转义字符才能使 'http://schemas.xmlsoap.org/ws/2005/05/identity/claims/name' 过滤器起作用?

这用于以下标记新创建的资源以供删除的用例

  1. 当 Azure 中有 Resource Write Success 事件时事件网格调用 azure 自动化脚本
  2. 带有过期标签的脚本标签资源
  3. 第二个脚本负责删除。

我认为,在高级过滤中没有使用这种命名的记录或未记录的way/workaround。将它用于索赔会很好,例如:

data.claims.schemas_ws200505identity_emailaddress 

其中 schemas_ws200505identity_ 表示 http://schemas.xmlsoap.org/ws/2005/05/identity/claims/

的值

无论如何,对于您的解决方案,过滤此 属性 的位置在订阅处理程序中。以下代码片段显示了此示例:

public static async Task Run(JObject eventGridEvent, ILogger log)
{
   // ...

   var emailaddress = eventGridEvent["data"]?["claims"]?["http://schemas.xmlsoap.org/ws/2005/05/identity/claims/emailaddress"]?.Value<string>();
   log.LogInformation($"emailaddress = {emailaddress}");

   // ...

  await Task.CompletedTask;
}