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.
PLATÍ PRO: NoSQL
Bezserverová architektura se zaměřuje na jednotlivé části logiky, které jsou opakovatelné a bezstavové. Tyto části nevyžadují žádnou správu infrastruktury a využívají prostředky pouze na ty sekundy nebo milisekundy, kdy běží. 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 mohou vytvořit izolovaná připojení k databázi při každém volání, pokud není databázový klient spravován správně, což může mít vliv na výkon spojení s databází při vysoké souběžnosti, zejména v plánu typu 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.
Přehled
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 sledování 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.
Poznámka:
V současné době se pro použití s rozhraním API pro NoSQL podporují triggery služby Azure Functions, vstupní vazby a výstupní vazby služby 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í:
Pro službu Azure Cosmos DB lze spouštěcí událost, vstupní vazbu a výstupní vazbu v rámci Azure Functions 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. Tuto kombinaci můžete použít k použití aktuálních informací o výměně měn (s vstupní vazbou ke kontejneru výměny) na kanál změn nových objednávek ve 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.
Scénář využití IoT – Spouštěč 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.
Implementace: 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 na auto, jako je například kontrolka motoru, která se rozsvítí v připojeném autě.
- Když se rozsvítí kontrolka motoru, data ze senzorů se odesílají do 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 funkce aktualizuje záznam auta v jiném kontejneru Azure Cosmos DB, aby ukládal informace o události kontroly motoru.
Následující obrázek ukazuje kód napsaný na webu Azure Portal pro tento trigger.
Případ finančního použití – aktivační událost časovače 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ý spouštěč se vstupní vazbou služby 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, pokračujte akcí služby 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 oblasti počítačových her – Spouštěč a výstupní vazba pro Azure Functions ve službě 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.
Implementace: 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 službu Azure Cosmos DB naslouchání 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 změnovému kanálu, je pro každou funkci vyžadována nová kolekce pronájmů. Další informace o sbírkách změn najdete v tématu Porozumění knihovně Procesoru kanálu změn.
- 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 a ujistěte se, že nezpozdí události zpracování kritického pořadí v procesu.
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 roztáčí jednotlivé funkce, aby se dokončily diskrétní procesy.
Nástroje
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í, u kterých jsou všechny výstupy směrovány do služby 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é dotazují a zapisují do stejného kontejneru, můžete škálovat svou kapacitu RU/s, abyste zvládli zatížení. Všechny funkce mohou pracovat paralelně s využitím vašich přidělených RU/s a vaše data jsou zaručeně konzistentní.
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ů Azure Cosmos DB se data z událostmi řízených triggerů čtou z 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í paralelně a služba zprovozní tolik, kolik potřebujete. 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, přečtěte si téma 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: