Remarque
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article traite des problèmes liés à l’utilisation de Stockage Blob comme magasin de points de contrôle.
Problèmes liés à l’utilisation du stockage Blob en tant que magasin de points de contrôle
Vous pouvez rencontrer des problèmes d'utilisation d'un compte de stockage blob comme point de contrôle, notamment des retards de traitement ou des échecs de création des points de contrôle avec le SDK, etc.
Suivez ces recommandations lorsque vous utilisez le Stockage Blob Azure en tant que magasin de points de contrôle :
- Utilisez un conteneur distinct pour chaque groupe de consommateurs. Vous pouvez utiliser le même compte de stockage, mais utiliser un conteneur par groupe.
- N’utilisez pas le compte de stockage pour autre chose.
- N’utilisez pas le conteneur pour tout autre chose.
- Créez le compte de stockage dans la même région que l’application déployée. Si l’application est locale, essayez de choisir la région la plus proche possible.
Sur la page Compte de stockage du Portail Azure, dans la section Service BLOB, vérifiez que les paramètres suivants sont désactivés.
- Espace de noms hiérarchique
- Suppression réversible de blob
- Gestion des versions
Utilisation du stockage Blob pour la gestion des points de contrôle sur Azure Stack Hub
Si vous utilisez Stockage Blob Azure comme magasin de points de contrôle dans un environnement qui prend en charge une version différente du SDK Blob de stockage que celles généralement disponibles sur Azure, vous devez utiliser du code pour remplacer la version de l’API du service de stockage par la version spécifique prise en charge par cet environnement. Par exemple, si vous exécutez Event Hubs sur une version Azure Stack Hub 2002, la version la plus élevée disponible pour le service de stockage est la version 2017-11-09. Dans ce cas, vous devez utiliser du code pour cibler la version de l’API du service de stockage vers 2017-11-09. Pour obtenir un exemple de ciblage d’une version spécifique de l’API de stockage, consultez ces exemples sur GitHub :
- .FILET
- Java.
- JavaScript ou TypeScript
- Python : synchrone, asynchrone
Si vous exécutez le récepteur Event Hubs qui utilise le Stockage Blob comme magasin de points de contrôle sans cibler la version prise en charge par Azure Stack Hub, vous recevez le message d’erreur suivant :
The value for one of the HTTP headers is not in the correct format
Exemple de message d’erreur dans Python
Pour Python, une erreur de azure.core.exceptions.HttpResponseError est transmise au gestionnaire d'erreurs on_error(partition_context, error) de EventHubConsumerClient.receive(). Toutefois, la méthode receive() ne déclenche pas d’exception.
print(error) imprime les informations d’exception suivantes :
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
L’enregistreur d’événements enregistre deux avertissements comme ceux suivants :
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
Étapes suivantes
Consultez l’article suivant pour en savoir plus sur le partitionnement et le point de contrôle : équilibrer la charge de partition sur plusieurs instances de votre application