为什么Azure Event Hub EventData的PartitionKey字段为空?

时间:2018-03-23 16:29:33

标签: azure azure-functions azure-webjobs azure-eventhub

我使用Azure Functions 1.x从Azure事件中心消耗PartitionKey个事件。但是,我注意到Offset始终为空。但是,SequenceNumberPartitionKey都已填充。

我知道发件人设置PartitionKey是可选的。事实上,它recommended没有出于性能原因而设置它。但是,我假设在前往消费者的某个地方,EventData将使用处理Offset的分区进行设置。

如果情况并非如此,那么发送SequenceNumberOffset的重点是什么?每个分区都有自己的SequenceNumberPartitionKey。如果我想重播一个事件,我怎么会在不知道PartitionContext

的情况下这样做

编辑:

我刚刚发现,如果我绑定到PartitionId,我可以查看EventData来自的PartitionKey。为什么这不习惯填充EventData上的ws?这是Azure Functions的错误吗?

2 个答案:

答案 0 :(得分:0)

您应该能够从EventData对象获取partitionKey属性。请注意,https://medium.com/@jeffhollan/in-order-event-processing-with-azure-functions-bb661eb55428

答案 1 :(得分:0)

来自PartitionKey的{​​{1}} different

  

PartitionId与PartitionKey不同。分区键用于   确保相同的分区键落在相同的分区ID上。您可以   认为PartitionKey与partitionId的关系为“f(partitionKey)=   partitionId“其中f是散列函数。

PartitionId如果发件人未设置Ling Toh,则会为空。

您可以使用PartitionKey绑定访问Azure功能中的PartitionId