Azure Blob 更改源缺少 blob 追加事件

Azure Blob Change Feed missing blob append events

我正在试用 Azure Blob 更改提要功能,它对我来说使用附加 Blob 时表现得很奇怪:提要中缺少附加事件。

我的场景是:

  1. 创建存储帐户,启用更改源功能: Change feed enabled

  2. 如果不存在则创建附加 Blob (1) 并将一些输入附加到其中 (2)。

     private void WriteBlob(string input)
     {
         MemoryStream stream = new MemoryStream(Encoding.UTF8.GetBytes(input));
    
         try
         {
             if (client == null)
             {                    
                 var credential = new ClientSecretCredential("...", "...");
                 client = new AppendBlobClient(new Uri("..."), credential);
             }
    
             client.CreateIfNotExists(); // (1)
             client.AppendBlock(stream); // (2)
         }
         catch (Exception ex)
         {
             Console.WriteLine(ex.Message);
         }
     }
    
  3. 在单独的控制台应用程序中获取更改源条目。

     public static List<BlobChangeFeedEvent> GetChanges()
     {
         var credential = new ClientSecretCredential("...", "...");
         BlobChangeFeedClient blobChangeFeedClient = new BlobChangeFeedClient(new Uri("..."), credential);
    
         List<BlobChangeFeedEvent> events = new List<BlobChangeFeedEvent>();
         foreach (BlobChangeFeedEvent changeFeedEvent in blobChangeFeedClient.GetChanges())
         {
             events.Add(changeFeedEvent);
         }
         return events;
     }
    

问题是,在运行几次 WriteBlob 方法后,我只得到与创建 blob 相对应的单个更改提要事件,并且提要中缺少后续追加,但是输入已成功附加到blob 资源。

问题是为什么会这样?关于文档中更改提要的附加 Blob blob 类型,我没有发现任何特别之处。

目前不支持 append blobappend event

根据 this doc,仅支持以下 event types

  • BlobCreated

  • BlobDeleted

  • BlobPropertiesUpdated

  • BlobSnapshotCreated

而在Azure.Storage.Blobs.ChangeFeed包的source code中,没有append event type

其中一个feature request已提交,希望以后的版本中能加上。