尝试从Azure表删除实体时,Azure Logic App提供404

时间:2019-04-15 12:08:58

标签: azure azure-table-storage azure-logic-apps

我有一个Azure表,该表具有一个分区键“ myPartition”和一个“行键”,其中包含电子邮件地址。

我正在使用Azure Logic应用程序监视共享邮箱中的订阅消息,然后将它们添加到此表中。效果很好。

但是,当我收到一条退订消息,并且Logic App尝试使用分区键和行键删除实体时,我收到404错误ResourceNotFound。

使用Azure Storage Explorer,我可以看到要删除的行。

我怀疑问题可能是由行键中电子邮件地址中的@字符引起的,因为我发现文章暗示某些字符在行键中无效-尽管他们都没有提到@字符。

有人能提供解决此问题的想法吗?

1 个答案:

答案 0 :(得分:0)

@字符不应该成为问题:

  

关键字段中不允许使用的字符
  PartitionKey和RowKey属性的值中不允许使用以下字符:

     
      
  • 正斜杠(/)字符
  •   
  • 反斜杠(\)字符
  •   
  • 数字符号(#)字符
  •   
  • 问号(?)字符
  •   
  • 从U + 0000到U + 001F的控制字符,包括:      
        
    • 水平制表符(\ t)字符
    •   
    • 换行(\ n)字符
    •   
    • 回车符(\ r)
    •   
  •   
  • 从U + 007F到U + 009F的控制字符
  •   

  

主键的第二部分是行键,由RowKey属性指定。行键是给定分区中实体的唯一标识符。 PartitionKey和RowKey一起唯一地标识表中的每个实体。

     

行键是一个字符串值,最大长度为1 KB。

     

您必须在每个插入,更新和删除操作中包括RowKey属性。

来自Understanding the Table Service Data Model

您完全确定字符串是完全相同的吗?没有空格或大小写差异吗?