是否有一种方法可以延长Azure事件网格系统主题交付操作超时时间?

atmip9wb  于 2023-06-24  发布在  其他
关注(0)|答案(1)|浏览(126)

我使用azure事件网格系统主题订阅,订阅存储账户(Microsoft.Storage.BlobCreated)的事件,触发函数app将blob从一个容器复制到另一个容器。
并且少数斑点是大尺寸的(平均15Gb)。因此,每当创建新文件时,事件网格触发器都会调用函数app并将数据复制到目的地。但在大型blob场景中,函数应用程序运行更长的持续时间以完成任务(超过3分钟),在这种情况下,事件网格将其视为超时的交付操作,再次重试交付相同的事件,因为这种重复,另一个副本已经启动。
根据Azure Event Grid Retry Schedule的文档。3分钟后,它重试传递事件。
那么,有没有什么方法可以增加事件网格系统主题的订阅交付操作超时?
诊断错误消息:

{ "time": "2023-06-07T12:06:21.2004399Z", "resourceId": "/SUBSCRIPTIONS/MY-SUBSCRIPTION-ID/RESOURCEGROUPS/MY-RESOURCE-GROUP/PROVIDERS/MICROSOFT.EVENTGRID/SYSTEMTOPICS/MY-TOPIC_NAME", "eventSubscriptionName": "my-event-subscriptions", "category": "DeliveryFailures", "operationName": "Deliver", "message": "outcome=Aborted, latencyInMs=180015, id=fbafd92c-d2c9-4845-a993-d9d6e457ec24, outputEventSystemId=d81de23d-a28d-452a-9ca6-832e8984d36f, state=Filtered, deliveryTime=6/7/2023 12:14:21 PM, deliveryCount=5, probationCount=1, deliverySchema=EventGridEvent, trackedSystemTopicState=CreatedExplicitlyByUser, eventSubscriptionDeliverySchema=EventGridEvent, outputEventFields=InputEvent| EventSubscriptionId| DeliveryTime| DeliveryCount| State| Id| ProbationCount| LastDeliveryOutcome| DeliverySchema| LastDeliveryAttemptTime| SystemId| UseMappedResourceArmIdForBilling| TrackedSystemTopicState, outputEventFieldCount=13, requestExpiration=6/7/2023 12:06:21 PM, delivered=False id=2d5a0090-d01f-000b-3636-990044063809, inputEventSystemId=693d9d67-03c4-4a26-98d5-e79f913f098c publishTime=6/7/2023 11:50:54 AM, eventTime=6/7/2023 11:50:53 AM, eventType=Microsoft.Storage.BlobCreated, deliveryTime=1/1/0001 12:00:00 AM, filteringState=FilteringPending, inputSchema=EventGridEvent, publisher=MICROSOFT-STORAGE-STORAGEACCOUNTS.WESTUS-1.EVENTGRID.AZURE.NET, size=1382, subject=/blobServices/default/containers/source-container/blobs/source=agilitek/year=2023/month=06/day=07/set=eloqua.emailsend/uuid=444a11a1-6b29-4952-afac-256269990599/994d4369-5c7c-47b6-ba61-19d26b051965.parquet, inputEventFields=Id| PublishTime| SerializedBody| EventType| Topic| Subject| FilteringHashCode| SystemId| Publisher| FilteringTopic| TopicCategory| DataVersion| MetadataVersion| InputSchema| EventTime| FilteringPolicy, inputEventFieldCount=16, type=AzureFunction, subType=NotApplicable, supportsBatching=False, aadIntegration=False, managedIdentityType=None, armId=/subscriptions/MY-SUBSCRIPTION-ID/resourceGroups/MY-RESOURCE-GROUP/providers/Microsoft.Web/sites/MY-FUNCTION-APP/functions/EventGridTrigger, deliveryResponse=, httpStatusCode=InternalServerError, errorType=UnexpectedError, errorMessage=An unexpected error has occurred. Please report the x-ms-request-id header value to our forums for assistance or raise a support ticket., errorMessage=The operation timed out after: 00:03:00"}

注意:我的解决方案避免了blob触发器,因为它输入fileInputStream。

mm5n2pyu

mm5n2pyu1#

我相信增加超时时间只是一个变通办法,而不是实际的解决方案。
您可以使用Azure队列和另一个函数应用程序来处理队列消息,而不是直接在此函数应用程序中处理事件。
然后,您的第一个函数应用程序将从事件网格接收事件,将其放入队列。因此,事件网格不会发生超时。
您的第二个功能应用程序将以自己的速度处理消息(复制blob)。

相关问题