Problemen met het controlepuntarchief oplossen

In dit artikel worden problemen besproken met het gebruik van Blob Storage als controlepuntarchief.

Problemen met het gebruik van Blob Storage als controlepuntarchief

Er kunnen problemen optreden bij het gebruik van een Blob Storage-account als een controlepuntarchief dat te maken heeft met vertragingen in de verwerking of fouten bij het maken van controlepunten bij het gebruik van de SDK, enzovoort.

Volg deze aanbevelingen wanneer u Azure Blob Storage gebruikt als controlepuntarchief:

  • Gebruik een afzonderlijke container voor elke consumentengroep. U kunt hetzelfde opslagaccount gebruiken, maar één container per groep gebruiken.
  • Gebruik de container niet voor iets anders en gebruik het opslagaccount niet voor iets anders.
  • Het opslagaccount moet zich in dezelfde regio bevinden als waarin de geïmplementeerde toepassing zich bevindt. Als de toepassing on-premises is, probeert u de dichtstbijzijnde regio te kiezen.

Controleer op de pagina Opslagaccount in Azure Portal in de sectie Blob-service of de volgende instellingen zijn uitgeschakeld.

  • Hiërarchische naamruimte
  • Blob voorlopig verwijderen
  • Versiebeheer

Blob Storage-controlepuntopslag gebruiken in Azure Stack Hub

Als u Azure Blob Storage gebruikt als het controlepuntarchief in een omgeving die ondersteuning biedt voor een andere versie van de Storage Blob SDK dan de versie die doorgaans beschikbaar is in Azure, moet u code gebruiken om de API-versie van de Storage-service te wijzigen in de specifieke versie die door die omgeving wordt ondersteund. Als u bijvoorbeeld Event Hubs uitvoert op een Azure Stack Hub-versie 2002, is de hoogste beschikbare versie voor de Storage-service versie 2017-11-09. In dit geval moet u code gebruiken om de API-versie van de Storage-service te richten op 2017-11-09. Zie de volgende voorbeelden op GitHub voor een voorbeeld van het doel van een specifieke storage-API-versie:

Als u Event Hubs-ontvanger uitvoert die Gebruikmaakt van Blob Storage als controlepuntarchief zonder de versie te richten die Door Azure Stack Hub wordt ondersteund, ontvangt u het volgende foutbericht:

The value for one of the HTTP headers is not in the correct format

Voorbeeldfoutbericht in Python

Voor Python wordt een fout azure.core.exceptions.HttpResponseError doorgegeven aan de fouthandler on_error(partition_context, error) van EventHubConsumerClient.receive(). Maar met de methode receive() wordt geen uitzondering gegenereerd. print(error) de volgende uitzonderingsgegevens worden afgedrukt:

The value for one of the HTTP headers is not in the correct format.

RequestId:f048aee8-a90c-08ba-4ce1-e69dba759297
Time:2020-03-17T22:04:13.3559296Z
ErrorCode:InvalidHeaderValue
Error:None
HeaderName:x-ms-version
HeaderValue:2019-07-07

De logboekregistratie registreert twee waarschuwingen zoals de volgende:

WARNING:azure.eventhub.extensions.checkpointstoreblobaio._blobstoragecsaio: 
An exception occurred during list_ownership for namespace '<namespace-name>.eventhub.<region>.azurestack.corp.microsoft.com' eventhub 'python-eh-test' consumer group '$Default'. 

Exception is HttpResponseError('The value for one of the HTTP headers is not in the correct format.\nRequestId:f048aee8-a90c-08ba-4ce1-e69dba759297\nTime:2020-03-17T22:04:13.3559296Z\nErrorCode:InvalidHeaderValue\nError:None\nHeaderName:x-ms-version\nHeaderValue:2019-07-07')

WARNING:azure.eventhub.aio._eventprocessor.event_processor:EventProcessor instance '26d84102-45b2-48a9-b7f4-da8916f68214' of eventhub 'python-eh-test' consumer group '$Default'. An error occurred while load-balancing and claiming ownership. 

The exception is HttpResponseError('The value for one of the HTTP headers is not in the correct format.\nRequestId:f048aee8-a90c-08ba-4ce1-e69dba759297\nTime:2020-03-17T22:04:13.3559296Z\nErrorCode:InvalidHeaderValue\nError:None\nHeaderName:x-ms-version\nHeaderValue:2019-07-07'). Retrying after 71.45254944090853 seconds

Volgende stappen

Zie het volgende artikel voor meer informatie over partitionering en controlepunten: Partitiebelasting verdelen over meerdere exemplaren van uw toepassing