Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Azure::Core (azure-core) poskytuje sdílené primitivy, abstrakce a pomocné rutiny pro moderní klientské knihovny Sady Azure SDK napsané v jazyce C++. Tyto knihovny se řídí pokyny pro návrh sady Azure SDK pro jazyk C++.
Knihovna umožňuje klientským knihovnám zpřístupnit společné funkce konzistentním způsobem. Jakmile se naučíte používat tato rozhraní API v jedné klientské knihovně, budete vědět, jak je používat v jiných klientských knihovnách.
Začínáme
Obvykle nebudete muset stahovat. Stáhnou azure-corese za vás jako závislost klientských knihoven. V případě, že ho chcete stáhnout explicitně (pro implementaci vlastní klientské knihovny, například), můžete najít zdroj zde nebo použít vcpkg k instalaci balíčku azure-core-cpp.
Zahrňte balíček
Nejjednodušší způsob, jak získat sadu SDK jazyka C++, je využití správce balíčků vcpkg. Projděte si odpovídající část readme v sadě Azure SDK pro jazyk C++.
Instalace balíčku Azure Core přes vcpkg:
> vcpkg install azure-core-cpp
Pak použijte v souboru CMake:
find_package(azure-core-cpp CONFIG REQUIRED)
target_link_libraries(<your project name> PRIVATE Azure::azure-core)
Klíčové koncepty
Mezi hlavní sdílené koncepty Azure::Core patří:
- Zpracování streamovaných dat a vstupu a výstupu (I/O) prostřednictvím
BodyStreamodvozených typů - Přístup k podrobnostem odpovědi HTTP pro vrácený model jakékoli operace klienta sady SDK prostřednictvím
Response<T>. - Dotazování dlouhotrvajících operací (LRO) prostřednictvím
Operation<T>. - Výjimky pro hlášení chyb z požadavků služby konzistentním způsobem prostřednictvím základního typu
RequestFailedExceptionvýjimky . - Abstrakce přihlašovacích údajů sady Azure SDK (
TokenCredential). - Nahraditelná přenosová vrstva HTTP pro odesílání požadavků a přijímání odpovědí přes síť.
- Kanál HTTP a zásady HTTP, jako je opakování a protokolování, které lze konfigurovat prostřednictvím možností specifických pro klienta služby.
Dlouhotrvající operace
Dokončení některých operací trvá delší dobu a vyžaduje dotazování na jejich stav. Metody spouštění dlouhotrvajících operací vracejí Operation<T> typy.
Přerušovaně můžete dotazovat, zda operace byla dokončena pomocí Poll() metody na vrácené Operation<T> a sledovat průběh operace pomocí Value(). Případně pokud chcete počkat, až se operace dokončí, můžete použít 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();
Přenosový adaptér HTTP
Sada Azure SDK pro C++ podporuje knihovny libcurl a WinHTTP jako zásobníky HTTP pro komunikaci se službami Azure přes síť. Sada SDK také poskytuje mechanismus pro customer-implementedpřenosový adaptér HTTP.
Další informace o přenosovém adaptéru najdete v tomto dokumentu.
Řešení problémů
Existují tři hlavní způsoby řešení potíží se selháními:
- Kontrola výjimek
- Povolení protokolování (viz zprávy protokolu sady SDK)
Zprávy protokolu sady SDK
Nejjednodušší způsob, jak povolit protokoly, je nastavit proměnnou prostředí AZURE_LOG_LEVEL na jednu z hodnot: |AZURE_LOG_LEVEL|Azure::Core::Diagnostics::Logger::Level|Úroveň zprávy protokolu| |-|-|-| |4 nebo error nebo err|Error|Úroveň protokolování selhání, ze které se aplikace pravděpodobně neobnoví. | |3 nebo warning nebo warn|Warning|Úroveň protokolování, když se funkci nepodaří provést zamýšlenou úlohu.| |2 nebo informational nebo information nebo info|Informational|Úroveň protokolování, když funkce funguje normálně.| |1 nebo verbose nebo debug|Verbose|Úroveň protokolování pro podrobné scénáře řešení potíží.|
Zprávy protokolu se pak vytisknou do konzoly (stderr).
Všimněte si, že stderr zprávy je možné přesměrovat do souboru protokolu takto:
V systému Windows:
myprogram.exe 2> log.txt
V Linuxu nebo macOS:
./myprogram 2> log.txt
Zprávy protokolu lze navíc zpracovat prostřednictvím kódu programu poskytnutím funkce zpětného volání, která je může uložit do souboru nebo je zobrazit požadovaným vlastním způsobem.
#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 */ });
}
Všimněte si, že zpětné volání naslouchacího procesu se provádí ve stejném vlákně jako operace, která aktivovala zprávu protokolu. Doporučujeme implementaci z důvodu minimálního množství zpracování zpráv protokolu ve vlákně zpětného volání. Pokud je požadováno zpracování zpráv, zvažte implementaci způsobem, který zpětné volání odešle řetězec zprávy do fronty bezpečné pro vlákno, aby jiné vlákno vybralo zprávy z této fronty a zpracovávalo je.
Další kroky
Prozkoumejte a nainstalujte dostupné knihovny sady Azure SDK.
Contributing
Podrobnosti o přispívání do tohoto úložiště najdete v průvodci přispívání.
Tento projekt vítá příspěvky a návrhy. Většina příspěvků vyžaduje souhlas s licenční smlouvou s přispěvatelem (CLA), která deklaruje, že máte právo a ve skutečnosti nám udělíte práva k používání vašeho příspěvku. Podrobnosti najdete v licenční smlouvě přispěvatele.
Když odešlete žádost o přijetí změn, robot CLA automaticky určí, jestli potřebujete poskytnout CLA, a odpovídajícím způsobem vyzdobit žádost o přijetí změn (např. popisek, komentář). Stačí postupovat podle pokynů poskytovaných robotem. Stačí to udělat jen jednou napříč všemi úložištěmi pomocí naší cla.
Tento projekt se řídí Pravidly chování pro Microsoft Open Source. Další informace najdete v nejčastějších dotazech k kodexu chování nebo kontaktujte opencode@microsoft.com s dalšími dotazy nebo komentáři.
Další užitečné odkazy pro přispěvatele
Mnoho lidí po celém světě pomohlo zlepšit tento projekt. Budete se chtít podívat:
- Jaké jsou některé dobré první problémy pro nové přispěvatele do úložiště?
- Postup sestavení a otestování změny
- Jak můžete udělat změnu!
- Nejčastější dotazy a koncepční témata v podrobné sadě Azure SDK pro wikiweb jazyka C++.
Hlášení problémů se zabezpečením a chyb zabezpečení
Problémy se zabezpečením a chyby by se měly hlásit soukromě prostřednictvím e-mailu do centra Microsoft Security Response Center (MSRC). secure@microsoft.com Odpověď byste měli obdržet do 24 hodin. Pokud z nějakého důvodu ne, pokračujte e-mailem a ujistěte se, že jsme dostali vaši původní zprávu. Další informace, včetně klíče PGP MSRC, najdete na webu Security TechCenter.
Licence
Sada Azure SDK pro C++ je licencovaná v rámci licence MIT .