Azure EventGrid将事件移至死信队列而不重试

huangapple go评论73阅读模式
英文:

Azure EventGrid moving the Events to Dead-letter queue without retry

问题

Azure EventGrid 将事件移动到死信队列而不进行重试。

但我看到以下原因:

"deadLetterReason": "由于客户端错误而无法交付"
"deliveryAttempts": 1
"lastDeliveryOutcome": "试用期"
"lastHttpStatusCode": 0

请帮助我理解死信原因属性。

deliveryAttempts = 1
为什么在目标被放入试用期时,EventGrid 不进行重试?我们可以在将事件移动到死信队列之前进行任何配置设置以要求 EventGrid 进行重试吗?

lastHttpStatusCode = 0 这是什么意思?

英文:

Azure EventGrid moving the Events to Dead-letter queue without retry.

But I am seeing the following reason:

"deadLetterReason": "UndeliverableDueToClientError"
"deliveryAttempts": 1
"lastDeliveryOutcome": "Probation"
"lastHttpStatusCode": 0

Please help me to understand the dead letter reason attributes.

deliveryAttempts = 1
Why EventGrid is not retying when Destination is put in probation? Can we do any config settings to ask the EventGrid to retry before moving the Events to Dead-letter queue.

lastHttpStatusCode = 0 What's this means?

答案1

得分: 0

  • Event Grid 的 "dead letter" 概念是当目标(如存储帐户)无法发送 "在一定时间段内无法传递到存储的事件" 或超过限制数量时,将事件移动到死信队列中的解释。

  • 如下图所示,在创建事件订阅时选择 "附加功能" 和 "启用死信处理",以捕获未成功传递给订阅者的任何事件。这将会将任何未传递的事件发送到指定的存储帐户。

Azure EventGrid将事件移至死信队列而不重试

  • 上一次的HTTP状态代码 = 0

  • 文档所述,HTTP响应代码0表示请求已被取消。这可能是因为超时或请求的中止。它表示请求在指定的时间内未能执行。在这里,0表示目标未返回任何状态代码。

  • 您还可以参考相同的问题Http请求的状态码0是什么意思。

  • 传递尝试次数 = 1

  • 在这里,传递尝试次数1表示事件网格仅尝试传递事件一次。

  • 无法传递由于客户端错误

  • 这主要表示目标中的客户端网络错误。

  • 您可以按照MS文档中的死信重试策略进行设置。
    如下图所示,设置 "配置重试策略",最大传递尝试次数必须为1到30,您甚至可以设置 "事件订阅到期时间"。

Azure EventGrid将事件移至死信队列而不重试

  • 有关参考的死信MS文档
英文:
  • The concept of Event Grid dead letter explained as it moves event to the dead letter queue when the destination like storage account is unable to send the Save events that cannot be delivered to storage event in a certain time period or exceeded the number of limits.
  • As shown in the below image In Create Event Subscription select Additional features and Enable dead lettering to catch any events that are not delivered successfully to the subscribers . This will send any undelivered events to the specified storage account

Azure EventGrid将事件移至死信队列而不重试

lastHttpStatusCode = 0

*As mentioned in the Document The HTTP response code of 0 indicates that the request was cancelled. It can happen because of timeout, abortion on the request. It indicates the request failed to execute within a specified time. Here 0 indicates the no status code was returned by destination.
You can also refer the same issue Status code 0 of Http Request.

  delivery attempts = 1
  • Here delivery attempts 1 indicates the event grid has attempted to deliver the events only once.
    Undeliverable due To Client error
  • It indicates mainly client-side network error in destination.

  • You can set Dead letter retry policy by following MS Document.
    As shown in below image set configure retry polices ok and the max delivery attempts must be 1 to 30 and even you can set EVENT SUBSCRIPTION EXPIRATION TIME
    Azure EventGrid将事件移至死信队列而不重试

Dead letter MS document for reference

huangapple
  • 本文由 发表于 2023年1月8日 22:01:05
  • 转载请务必保留本文链接:https://go.coder-hub.com/75048345.html
匿名

发表评论

匿名网友

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen:

确定