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.
Bezserverová architektura se zaměřuje na jednotlivé části logiky, které jsou opakovatelné a bezstavové. Tyto části nevyžadují žádnou správu infrastruktury a spotřebovávají prostředky pouze na sekundy či milisekundy v průběhu doby jejich běhu. Jádrem pohybu bezserverových výpočtů jsou funkce, které jsou dostupné v ekosystému Azure pomocí Azure Functions. Další informace o jiných bezserverových spouštěcích prostředích v Azure najdete na stránce Bezserverové prostředí Azure .
Díky nativní integraci mezi Azure Cosmos DB a Azure Functions můžete vytvářet triggery databáze, vstupní vazby a výstupní vazby přímo z účtu služby Azure Cosmos DB. Pomocí Azure Functions a Azure Cosmos DB můžete vytvářet a nasazovat bezserverové aplikace řízené událostmi s nízkou latencí přístup k bohatým datům pro globální uživatelskou základnu.
Azure Functions může vytvořit izolovaná připojení k databázi při každém vyvolání, pokud se databázový klient nespravuje správně, což může negativně ovlivnit výkon připojení v případě vysoké souběžnosti, zejména v tarifu Consumption. Pokud ale používáte vazby nebo triggery Služby Cosmos DB, Azure Functions interně opakovaně používá sdíleného klienta sady SDK služby Cosmos DB, který zajišťuje efektivní sdružování připojení napříč několika vyvoláním. Azure Cosmos DB podporuje režimy připojení založené na protokolu HTTP i tcp. Tato architektura podporuje škálovatelné a vysoce výkonné úlohy, které vyžadují dynamický přístup k datům.
Overview
Azure Cosmos DB a Azure Functions umožňují integrovat databáze a bezserverové aplikace následujícími způsoby:
- Vytvořte trigger Azure Functions řízený událostmi pro službu Azure Cosmos DB. Tento trigger využívá streamy kanálu změn k monitorování změn v kontejneru Azure Cosmos DB. Když v kontejneru dojde k nějakým změnám, stream kanálu změn se odešle do triggeru, který vyvolá funkci Azure Functions.
- Alternativně vytvořte vazbu funkce Azure Functions k kontejneru Azure Cosmos DB pomocí vstupní vazby. Vstupní vazby čtou data z kontejneru při spuštění funkce.
- Vytvoření vazby funkce k kontejneru Azure Cosmos DB pomocí výstupní vazby Výstupní vazby zapisují data do kontejneru po dokončení funkce.
Note
V současné době se pro použití s rozhraním API pro NoSQL podporuje trigger Služby Azure Functions, vstupní vazby a výstupní vazby pro službu Azure Cosmos DB. Pro všechna ostatní rozhraní API služby Azure Cosmos DB byste měli přistupovat k databázi z vaší funkce pomocí statického klienta pro vaše rozhraní API.
Následující diagram znázorňuje každou z těchto tří integrací:
Trigger, vstupní vazbu a výstupní vazbu služby Azure Functions pro službu Azure Cosmos DB je možné použít v následujících kombinacích:
- Trigger služby Azure Functions pro službu Azure Cosmos DB se dá použít s výstupní vazbou na jiný kontejner Azure Cosmos DB. Jakmile funkce provede akci s položkou v kanálu změn, můžete ji napsat do jiného kontejneru (zápis do stejného kontejneru, ze kterém pochází, by efektivně vytvořil rekurzivní smyčku). Nebo můžete pomocí triggeru Azure Functions pro službu Azure Cosmos DB efektivně migrovat všechny změněné položky z jednoho kontejneru do jiného kontejneru pomocí výstupní vazby.
- Vstupní vazby a výstupní vazby pro službu Azure Cosmos DB je možné použít ve stejné funkci Azure Functions. To funguje dobře v případech, kdy chcete najít určitá data se vstupní vazbou, upravit je ve funkci Azure Functions a potom je po úpravě uložit do stejného kontejneru nebo jiného kontejneru.
- Vstupní vazbu ke kontejneru Azure Cosmos DB je možné použít ve stejné funkci jako trigger Služby Azure Functions pro službu Azure Cosmos DB a dá se použít i s výstupní vazbou nebo bez této vazby. Pomocí této kombinace můžete aplikovat aktuální informace o měnových kurzech (připojené přes vstupní vazbu k výměnnému kontejneru) na změnový záznam nových objednávek ve vaší službě nákupního košíku. Aktualizovaný součet nákupního košíku s použitým aktuálním převodem měny lze zapsat do třetího kontejneru pomocí výstupní vazby.
Případy použití
Následující případy použití ukazují několik způsobů, jak můžete maximálně využít data Azure Cosmos DB – připojením dat k Azure Functions řízeným událostmi.
Případ použití IoT – Trigger a výstupní vazba Azure Functions pro Azure Cosmos DB
V implementacích IoT můžete vyvolat funkci, když se v připojeném autě zobrazí kontrolka motoru.
Provádění: Použití triggeru a výstupní vazby Azure Functions pro službu Azure Cosmos DB
- Trigger služby Azure Functions pro službu Azure Cosmos DB slouží k aktivaci událostí souvisejících s upozorněními automobilu, jako je například rozsvícení kontrolky motoru v připojeném vozidle.
- Když se rozsvítí kontrolka motoru, data ze senzorů se odesílají do služby Azure Cosmos DB.
- Azure Cosmos DB vytváří nebo aktualizuje nové dokumenty s daty snímačů. Tyto změny se pak streamují do triggeru Azure Functions pro Službu Cosmos DB.
- Aktivační událost se vyvolá při každé změně dat v kolekci dat snímače, protože všechny změny se streamují prostřednictvím kanálu změn.
- Ve funkci se používá prahová podmínka k odeslání dat ze snímačů do záručního oddělení.
- Pokud je teplota nad určitou hodnotou, pošle se vlastníkovi také výstraha.
- Výstupní vazba v rámci funkce aktualizuje záznam o autě v jiném kontejneru Azure Cosmos DB, aby ukládala informace o události kontroly motoru.
Následující obrázek ukazuje kód napsaný na webu Azure Portal pro tento trigger.
Řešení pro finanční sektor – časový spouštěč a vstupní vazba
Při finančních implementacích můžete vyvolat funkci, když zůstatek bankovního účtu spadá pod určitou částku.
Implementace: Časovačový trigger s vstupním připojením do Azure Cosmos DB
- Pomocí triggeru časovače můžete pomocí vstupní vazby načíst informace o zůstatku bankovního účtu uložené v kontejneru Azure Cosmos DB v časových intervalech.
- Pokud je zůstatek nižší než prahová hodnota nízkého zůstatku nastavená uživatelem, postupujte podle akce funkce Azure Functions.
- Výstupní vazbou může být integrace SendGridu , která odesílá e-mail z účtu služby na e-mailové adresy identifikované pro každý z účtů s nízkým zůstatkem.
Následující obrázky znázorňují kód na webu Azure Portal pro tento scénář.
Případ použití v herním prostředí – spouštěč a výstupní vazba Azure Functions pro službu Azure Cosmos DB
Při vytváření nového uživatele ve hraní her můžete vyhledat další uživatele, kteří je můžou znát pomocí služby Azure Cosmos DB pro Gremlin. Výsledky pak můžete zapsat do databáze Azure Cosmos DB nebo SQL, abyste je mohli snadno načíst.
Provádění: Použití triggeru a výstupní vazby Azure Functions pro službu Azure Cosmos DB
- Pomocí grafové databáze Azure Cosmos DB pro ukládání všech uživatelů můžete vytvořit novou funkci s triggerem Azure Functions pro službu Azure Cosmos DB.
- Při každém vložení nového uživatele se funkce vyvolá a výsledek se uloží pomocí výstupní vazby.
- Funkce se dotazuje grafové databáze, aby vyhledaly všechny uživatele, kteří přímo souvisejí s novým uživatelem, a vrátí danou datovou sadu do funkce.
- Tato data se pak ukládají ve službě Azure Cosmos DB, kterou pak může snadno načíst libovolná front-endová aplikace, která zobrazuje nového uživatele, kterého připojili přátelé.
Případ použití maloobchodního prodeje – více funkcí
Když uživatel v maloobchodní implementaci přidá položku do košíku, máte teď flexibilitu vytvářet a volat funkce pro volitelné součásti obchodního kanálu.
Implementace: Několik triggerů Azure Functions pro Azure Cosmos DB naslouchají jednomu kontejneru
- Několik funkcí Azure Functions můžete vytvořit tak, že do každé služby Azure Cosmos DB přidáte triggery Azure Functions – všechny naslouchají stejnému kanálu změn dat nákupního košíku. Když několik funkcí naslouchá stejnému zdroji změn, je pro každou funkci vyžadována nová sada pronájmů. Další informace o souborech pronájmu najdete v tématu Pochopení knihovny pro zpracování změnových dat.
- Při každém přidání nové položky do nákupního košíku uživatelů je každá funkce vyvolána informačním kanálem změn z kontejneru nákupního košíku.
Jedna funkce může obsah aktuálního košíku použít ke změně zobrazení dalších položek, které by mohl uživatel zajímat.
Jiná funkce může aktualizovat celkové součty inventáře.
Další funkce může poslat informace o zákaznících pro určité produkty marketingovému oddělení, které jim pošle propagační poštovní schránku.
Jakékoli oddělení může vytvořit službu Azure Functions pro službu Azure Cosmos DB nasloucháním kanálu změn, čímž si zajistí, že nezpozdí kritické události při zpracování objednávek.
Ve všech těchto případech použití, protože funkce oddělila samotnou aplikaci, nemusíte neustále vytvářet nové instance aplikací. Místo toho Azure Functions podle potřeby spouští jednotlivé funkce, aby dokončily samostatné procesy.
Tooling
Nativní integrace mezi Azure Cosmos DB a Azure Functions je dostupná na webu Azure Portal a v sadě Visual Studio.
Na portálu Azure Functions můžete vytvořit trigger. Pokyny pro rychlý start najdete v tématu Vytvoření triggeru Azure Functions pro službu Azure Cosmos DB na webu Azure Portal.
Na portálu Azure Cosmos DB můžete přidat trigger Služby Azure Functions pro službu Azure Cosmos DB do existující aplikace funkcí Azure ve stejné skupině prostředků.
V sadě Visual Studio můžete trigger vytvořit pomocí nástrojů Azure Functions:
Proč zvolit integraci Azure Functions pro bezserverovou architekturu?
Azure Functions poskytuje možnost vytvářet škálovatelné jednotky práce nebo stručné části logiky, které je možné spouštět na vyžádání bez zřizování nebo správy infrastruktury. Pomocí Azure Functions nemusíte vytvářet plnohodnotnou aplikaci, která by reagovala na změny v databázi Azure Cosmos DB, můžete vytvořit malé opakovaně použitelné funkce pro konkrétní úlohy. Kromě toho můžete jako vstup nebo výstup funkce Azure Functions použít také data Azure Cosmos DB v reakci na události, jako jsou požadavky HTTP nebo časovaná aktivační událost.
Azure Cosmos DB je doporučená databáze pro architekturu bezserverové architektury z následujících důvodů:
Okamžitý přístup ke všem datům: Máte podrobný přístup ke každé uložené hodnotě, protože Azure Cosmos DB automaticky indexuje všechna data ve výchozím nastavení a tyto indexy zpřístupní okamžitě. To znamená, že můžete do databáze neustále dotazovat, aktualizovat a přidávat nové položky a mít okamžitý přístup přes Azure Functions.
Bez schématu. Azure Cosmos DB je bez schématu, takže je jedinečně schopný zpracovat jakýkoli výstup dat z funkce Azure Functions. Tento přístup "zpracovat cokoli" usnadňuje vytvoření různých funkcí, které všechny zapisují do Azure Cosmos DB.
Škálovatelná propustnost Propustnost je možné vertikálně navýšit a snížit okamžitě ve službě Azure Cosmos DB. Pokud máte stovky nebo tisíce funkcí, které provádějí dotazy a zápisy do stejného kontejneru, můžete zvýšit kapacitu RU/s abyste zvládli zatížení. Všechny funkce mohou pracovat paralelně s využitím přidělených RU/s a zaručují konzistentní data.
Globální replikace Data Služby Azure Cosmos DB můžete replikovat po celém světě , abyste snížili latenci a geograficky lokalizovat data nejblíže místu, kde jsou vaši uživatelé. Stejně jako u všech dotazů ve službě Azure Cosmos DB se data ze událostmi řízených triggerů čtou z instance služby Azure Cosmos DB, která je nejblíže uživateli.
Pokud chcete integrovat se službou Azure Functions pro ukládání dat a nepotřebujete hloubkové indexování nebo pokud potřebujete ukládat přílohy a mediální soubory, může být trigger služby Azure Blob Storage lepší volbou.
Výhody Azure Functions:
Řízené událostmi. Služba Azure Functions je řízená událostmi a může naslouchat kanálu změn ze služby Azure Cosmos DB. To znamená, že nemusíte vytvářet logiku naslouchání, stačí mít přehled o změnách, na které nasloucháte.
Žádné limity. Funkce se spouštějí paralelně a služba se aktivuje podle potřeby. Nastavíte parametry.
Dobré pro rychlé úkoly. Služba spustí nové instance funkcí při každém spuštění události a zavře je hned po dokončení funkce. Platíte jenom za dobu, kdy jsou funkce spuštěné.
Pokud si nejste jistí, jestli je pro vaši implementaci nejvhodnější Flow, Logic Apps, Azure Functions nebo WebJobs, podívejte se na Výběr mezi Flow, Logic Apps, Azure Functions a WebJobs.
Další kroky
Teď propojíme Azure Cosmos DB a Azure Functions pro reálné účely: