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.
Azure ::Core (azure-core) fournit des primitives partagées, des abstractions et des assistances pour les bibliothèques clientes du SDK Azure modernes écrites dans C++. Ces bibliothèques suivent les instructions de conception du Kit de développement logiciel (SDK) Azure pour C++.
La bibliothèque permet aux bibliothèques clientes d’exposer les fonctionnalités courantes de manière cohérente. Une fois que vous avez appris à utiliser ces API dans une bibliothèque cliente, vous savez comment les utiliser dans d’autres bibliothèques clientes.
Mise en route
En règle générale, vous n’aurez pas besoin de télécharger azure-core; il sera téléchargé pour vous en tant que dépendance des bibliothèques clientes. Si vous souhaitez le télécharger explicitement (pour implémenter votre propre bibliothèque cliente, par exemple), vous pouvez trouver la source ici ou utiliser vcpkg pour installer le package azure-core-cpp.
Inclure le package
Le moyen le plus simple d’acquérir le Kit de développement logiciel (SDK) C++ tire parti du gestionnaire de package vcpkg. Consultez la section lisez-moi correspondante du Kit de développement logiciel (SDK) Azure pour C++.
Pour installer le package Azure Core via vcpkg :
> vcpkg install azure-core-cpp
Ensuite, utilisez votre fichier CMake :
find_package(azure-core-cpp CONFIG REQUIRED)
target_link_libraries(<your project name> PRIVATE Azure::azure-core)
Concepts clés
Les principaux concepts partagés sont Azure::Core les suivants :
- Gestion des données de streaming et des entrées/sorties (E/S) avec
BodyStreamses types dérivés. - Accès aux détails de la réponse HTTP pour le modèle retourné d’une opération cliente du SDK, via
Response<T>. - Interrogation d’opérations longues (LRO), via
Operation<T>. - Exceptions pour la création de rapports d’erreurs à partir de requêtes de service de manière cohérente via le type d’exception de
RequestFailedExceptionbase. - Abstractions pour les informations d’identification du Kit de développement logiciel (SDK) Azure (
TokenCredential). - Couche de transport HTTP remplaçable pour envoyer des demandes et recevoir des réponses sur le réseau.
- Pipeline HTTP et stratégies HTTP telles que les nouvelles tentatives et la journalisation, qui sont configurables via des options spécifiques au client de service.
Opérations de longue durée
Certaines opérations prennent beaucoup de temps et nécessitent l’interrogation de leur état. Méthodes de démarrage des types de retour Operation<T> d’opérations de longue durée.
Vous pouvez interroger par intermittence si l’opération s’est terminée à l’aide de la Poll() méthode sur la progression retournée Operation<T> et suivre la progression de l’opération à l’aide Value()de . Sinon, si vous souhaitez simplement attendre la fin de l’opération, vous pouvez utiliser PollUntilDone().
SomeServiceClient client;
auto operation = *client.StartSomeLongRunningOperation();
while (!operation.IsDone())
{
std::unique_ptr<Http::RawResponse> response = operation.Poll();
auto partialResult = operation.Value();
// Your per-polling custom logic goes here, such as logging progress.
// You can also try to abort the operation if it doesn't complete in time.
std::this_thread::sleep_for(std::chrono::milliseconds(1000));
}
auto finalResult = operation.Value();
Adaptateur de transport HTTP
Prête à l’emploi, le Kit de développement logiciel (SDK) Azure pour C++ prend en charge les bibliothèques libcurl et WinHTTP en tant que piles HTTP pour communiquer avec les services Azure sur le réseau. Le Kit de développement logiciel (SDK) fournit également un mécanisme pour customer-implementedl’adaptateur de transport HTTP.
Vous pouvez en savoir plus sur l’adaptateur de transport dans ce document.
Résolution des problèmes
Trois méthodes principales de résolution des problèmes sont les suivantes :
- Inspection des exceptions
- Activation de la journalisation (voir Messages de journalisation du Kit de développement logiciel (SDK)
Messages de journal du Kit de développement logiciel (SDK)
La façon la plus simple d’activer les journaux consiste à définir AZURE_LOG_LEVEL variable d’environnement sur l’une des valeurs suivantes : |AZURE_LOG_LEVEL|Azure::Core::Diagnostics::Logger::Level|Niveau du message de journal | |-|-|-| |4, ou error ou err|Error|Niveau de journalisation pour les défaillances auxquelles l’application est peu susceptible de récupérer.| |3, ou warning ou warn|Warning|Niveau de journalisation lorsqu’une fonction ne parvient pas à effectuer sa tâche prévue.| |2, ou informational, ou information, ou info|Informational|Niveau de journalisation lorsqu’une fonction fonctionne normalement.| |1, ou verbose, ou debug|Verbose|Niveau de journalisation pour les scénarios de résolution des problèmes détaillés.|
Ensuite, les messages de journal sont imprimés dans la console (stderr).
Notez que les stderr messages peuvent être redirigés vers un fichier journal comme suit :
Sur Windows :
myprogram.exe 2> log.txt
Sur Linux ou macOS :
./myprogram 2> log.txt
En outre, les messages de journal peuvent être traités par programmation en fournissant une fonction de rappel, qui peut les enregistrer dans un fichier ou les afficher de manière personnalisée souhaitée.
#include <azure/core/diagnostics/logger.hpp>
int main()
{
using namespace Azure::Core::Diagnostics;
// See above for the level descriptions.
Logger::SetLevel(Logger::Level::Verbose);
// SetListener accepts std::function<>, which can be either lambda or a function pointer.
Logger::SetListener([&](auto lvl, auto msg){ /* handle Logger::Level lvl and std::string msg */ });
}
Notez que le rappel de l’écouteur est exécuté sur le même thread que l’opération qui a déclenché le message de journal. Il est recommandé d’implémenter en raison de la quantité minimale de traitement des messages de journal sur le thread de rappel. Lorsque le traitement des messages est requis, envisagez d’implémenter de manière à ce que le rappel envoie la chaîne de message dans une file d’attente thread-safe, afin qu’un autre thread sélectionne les messages de cette file d’attente et les gère.
Étapes suivantes
Explorez et installez les bibliothèques du Kit de développement logiciel (SDK) Azure disponibles.
Contribution
Pour plus d’informations sur la contribution à ce référentiel, consultez le guide de contribution.
Ce projet accueille les contributions et suggestions. La plupart des contributions vous obligent à accepter un contrat de licence contributeur (CLA) déclarant que vous avez le droit, et en fait, de nous accorder les droits d’utilisation de votre contribution. Pour plus d’informations, consultez le Contrat de licence contributeur.
Lorsque vous envoyez une demande de tirage( pull request), un bot CLA détermine automatiquement si vous devez fournir un CLA et décorer correctement la demande de tirage (par exemple, étiquette, commentaire). Suivez simplement les instructions fournies par le bot. Vous n’aurez besoin de le faire qu’une seule fois sur tous les dépôts à l’aide de notre CLA.
Ce projet a adopté le Code de conduite Open Source Microsoft.
Pour plus d’informations, consultez le forum aux questions du Code de conduite
Liens utiles supplémentaires pour les contributeurs
Beaucoup de gens du monde entier ont contribué à améliorer ce projet. Vous voudrez consulter :
- Quels sont les premiers problèmes pour les nouveaux contributeurs au dépôt ?
- Comment générer et tester votre modification
- Comment vous pouvez apporter un changement !
- Forum aux questions (FAQ) et rubriques conceptuelles dans le wiki détaillé du Kit de développement logiciel (SDK) Azure pour C++.
Signaler des problèmes de sécurité et des bogues de sécurité
Les problèmes de sécurité et les bogues doivent être signalés en privé, par e-mail, au Centre d'intervention en matière de sécurité Microsoft (MSRC). secure@microsoft.com Vous devez recevoir une réponse dans les 24 heures. Si pour une raison quelconque vous ne le faites pas, veuillez suivre par e-mail pour vous assurer que nous avons reçu votre message d’origine. Vous trouverez plus d’informations, notamment la clé PGP MSRC, dans Security TechCenter.
Licence
Le Kit de développement logiciel (SDK) Azure pour C++ est concédé sous licence MIT .