Ukládání nestrukturovaných dat pomocí služeb Azure Functions a Azure Cosmos DB
Azure Cosmos DB nabízí skvělou možnost pro ukládání nestrukturovaných dat a dat JSON. V kombinaci se službou Azure Functions umožňuje Azure Cosmos DB rychlé a snadné ukládání dat s mnohem menším kódem, než je vyžadováno pro ukládání dat v relační databázi.
Poznámka:
V současnosti aktivační události Azure Cosmos DB a vstupní a výstupní vazby fungují jenom s účty SQL API a Graph API.
Ve službě Azure Functions poskytují vstupní a výstupní vazby deklarativní způsob připojení k datům externí služby z funkce. V tomto článku se dozvíte, jak aktualizovat stávající funkci a přidat výstupní vazbu, která ukládá nestrukturovaná data v dokumentu Azure Cosmos DB.
Požadavky
Pro absolvování tohoto kurzu potřebujete:
Tento článek používá jako výchozí bod prostředky vytvořené v části Vytvoření první funkce na webu Azure Portal. Pokud jste tento krok zatím neprovedli, vraťte se k němu a vytvořte aplikaci funkcí.
Vytvoření účtu služby Azure Cosmos DB
Před vytvořením výstupní vazby potřebujete účet služby Azure Cosmos DB, který používá rozhraní SQL API.
V nabídce webu Azure Portal nebo na domovské stránce vyberte Vytvořit prostředek.
Vyhledejte Službu Azure Cosmos DB. Vyberte Vytvořit>službu Azure Cosmos DB.
Na stránce Vytvořit účet služby Azure Cosmos DB vyberte možnost Vytvořit v části Azure Cosmos DB for NoSQL.
Azure Cosmos DB poskytuje několik rozhraní API:
- NoSQL pro data dokumentů
- PostgreSQL
- MongoDB pro data dokumentů
- Apache Cassandra
- Table
- Apache Gremlin pro data grafu
Další informace o rozhraní API pro NoSQL najdete v tématu Vítá vás Azure Cosmos DB.
Na stránce Vytvořit účet služby Azure Cosmos DB zadejte základní nastavení nového účtu služby Azure Cosmos DB.
Nastavení Hodnota Popis Předplatné Název předplatného Vyberte předplatné Azure, které chcete pro tento účet služby Azure Cosmos DB použít. Skupina prostředků Název skupiny prostředků Vyberte skupinu prostředků nebo vyberte Vytvořit novoua zadejte jedinečný název nové skupiny prostředků. Název účtu Jedinečný název Zadejte název pro identifikaci účtu služby Azure Cosmos DB. Vzhledem k tomu, že se váš identifikátor URI vytvoří připojením řetězce documents.azure.com k názvu, který zadáte, použijte jedinečný název. Název může obsahovat pouze malá písmena, číslice a znak spojovníku (-). Musí mít 3 až 44 znaků. Umístění Oblast nejbližší vašim uživatelům Vyberte zeměpisné umístění, ve kterém chcete účet služby Azure Cosmos DB hostovat. Použijte umístění, které je vašim uživatelům nejbližší, abyste jim zajistili nejrychlejší přístup k datům. Režim kapacity Zřízená propustnost nebo bezserverová Vyberte Zřízenou propustnost a vytvořte účet v režimu zřízené propustnosti. Vyberte Bezserverový účet a vytvořte účet v bezserverovém režimu. Uplatnění slevy na úroveň Free služby Azure Cosmos DB Použít nebo nepoužovat S úrovní Free služby Azure Cosmos DB získáte prvních 1 000 RU/s a 25 GB úložiště zdarma v účtu. Další informace o úrovni Free Omezení celkové propustnosti účtu Vybráno nebo ne Omezte celkovou propustnost, kterou je možné zřídit pro tento účet. Tento limit zabraňuje neočekávaným poplatkům souvisejícím se zřízenou propustností. Tento limit můžete po vytvoření účtu aktualizovat nebo odebrat. Pro každé předplatné Azure můžete mít až jeden účet služby Azure Cosmos DB úrovně Free a při vytváření účtu se musíte přihlásit. Pokud nevidíte možnost použít slevu na úroveň Free, je už u úrovně Free povolen jiný účet v předplatném.
Poznámka:
Pokud jako režim kapacity vyberete bezserverový režim, nejsou k dispozici následující možnosti:
- Použít slevu založenou na bezplatné úrovni
- Omezení celkové propustnosti účtu
Na kartě Globální distribuce nakonfigurujte následující podrobnosti. V tomto rychlém startu můžete ponechat výchozí hodnoty:
Nastavení Hodnota Popis Geografická redundance Zakázat Povolte nebo zakažte globální distribuci vašeho účtu spárováním oblasti s párovou oblastí. Další oblasti můžete do svého účtu přidat později. Zápisy do více oblastí Zakázat Funkce zápisu do více oblastí umožňuje využívat zřízenou propustnost pro databáze a kontejnery po celém světě. Zóny dostupnosti Zakázat Zóny dostupnosti vám pomohou dále zlepšit dostupnost a odolnost vaší aplikace. Poznámka:
Následující možnosti nejsou k dispozici, pokud jako režim kapacity na předchozí stránce Základy vyberete bezserverový režim:
- Geografická redundance
- Zápisy do více oblastí
Volitelně můžete nakonfigurovat další podrobnosti na následujících kartách:
- Sítě. Nakonfigurujte přístup z virtuální sítě.
- Zásady zálohování. Nakonfigurujte zásady pravidelného nebo průběžného zálohování.
- Šifrování. Použijte klíč spravovaný službou nebo klíč spravovaný zákazníkem.
- Značky. Značky jsou dvojice název-hodnota, které umožňují kategorizovat prostředky a zobrazovat souhrnnou fakturaci. Stačí k tomu u několika prostředků a skupin prostředků použít stejnou značku.
Vyberte Zkontrolovat a vytvořit.
Zkontrolujte nastavení účtu a pak vyberte Vytvořit. Vytvoření účtu trvá několik minut. Počkejte, až se na portálu zobrazí stránka s textem Vaše nasazení je hotové.
Pokud chcete přejít na stránku účtu Azure Cosmos DB, vyberte Přejít k prostředku.
Přidání výstupní vazby
Na webu Azure Portal přejděte na aplikaci funkcí, kterou jste vytvořili dříve, a vyberte ji.
Vyberte Funkce a pak vyberte funkci HttpTrigger.
Vyberte Možnost Integrace a + Přidat výstup.
Použijte nastavení Vytvořit výstup, jak je uvedeno v tabulce:
Nastavení Navrhovaná hodnota Popis Typ vazby Azure Cosmos DB Název typu vazby, který se má vybrat pro vytvoření výstupní vazby do azure Cosmos DB. Název parametru dokumentu taskDocument Název, který odkazuje na objekt služby Azure Cosmos DB v kódu. Název databáze taskDatabase Název databáze pro uložení dokumentů. Název kolekce taskCollection Název kolekce databáze. Pokud je hodnota true, vytvoří databázi a kolekci Azure Cosmos DB. Ano Kolekce ještě neexistuje, takže ji vytvořte. Připojení účtu Azure Cosmos DB Nové nastavení Vyberte Nový, pak zvolte účet služby Azure Cosmos DB a účet databáze, který jste vytvořili dříve, a pak vyberte OK. Vytvoří nastavení aplikace pro připojení k vašemu účtu. Toto nastavení vazba použije k připojení k databázi. Výběrem možnosti OK vytvořte vazbu.
Aktualizace kódu funkce
Nahraďte stávající kód funkce následujícím kódem ve zvoleném jazyce:
Nahraďte stávající funkci v C# následujícím kódem:
#r "Newtonsoft.Json"
using Microsoft.AspNetCore.Mvc;
using Microsoft.AspNetCore.Http;
using Microsoft.Extensions.Logging;
public static IActionResult Run(HttpRequest req, out object taskDocument, ILogger log)
{
string name = req.Query["name"];
string task = req.Query["task"];
string duedate = req.Query["duedate"];
// We need both name and task parameters.
if (!string.IsNullOrEmpty(name) && !string.IsNullOrEmpty(task))
{
taskDocument = new
{
name,
duedate,
task
};
return (ActionResult)new OkResult();
}
else
{
taskDocument = null;
return (ActionResult)new BadRequestResult();
}
}
Tento vzorový kód přečte řetězce dotazů požadavků HTTP a přiřadí je do polí v objektu taskDocument
. Vazba taskDocument
odešle data objektu z tohoto parametru vazby k uložení ve vázané databázi dokumentů. Tato databáze se vytvoří při prvním spuštění funkce.
Testování funkce a databáze
Vyberte Testovat/spustit. V části Dotaz vyberte + Přidat parametr a přidejte do řetězce dotazu následující parametry:
name
task
duedate
Vyberte Spustit a ověřte, že je vrácen stav 200.
Na webu Azure Portal vyhledejte a vyberte Azure Cosmos DB.
Zvolte svůj účet služby Azure Cosmos DB a pak vyberte Průzkumník dat.
Rozbalte uzly TaskCollection, vyberte nový dokument a ověřte, že dokument obsahuje hodnoty řetězce dotazu spolu s dalšími metadaty.
Úspěšně jste přidali vazbu k triggeru HTTP pro ukládání nestrukturovaných dat v instanci služby Azure Cosmos DB.
Vyčištění prostředků
V předchozích krocích jste vytvořili prostředky Azure ve skupině prostředků. Pokud předpokládáte, že už tyto prostředky nebudete potřebovat, můžete je odstranit tak, že odstraníte skupinu prostředků.
V nabídce webu Azure Portal nebo na domovské stránce vyberte skupiny prostředků. Potom na stránce Skupiny prostředků vyberte myResourceGroup.
Na stránce myResourceGroup se ujistěte, že uvedené prostředky jsou ty, které chcete odstranit.
Vyberte Odstranit skupinu prostředků, do textového pole zadejte myResourceGroup , abyste ji potvrdili, a pak vyberte Odstranit.
Další kroky
Další informace o vazbách k instanci služby Azure Cosmos DB najdete v tématu Vazby Azure Cosmos DB služby Azure Functions.
- Koncepty triggerů a vazeb Azure Functions.
Zjistěte, jak se služba Functions integruje s dalšími službami. - Referenční informace pro vývojáře Azure Functions
Poskytuje další technické informace o modulu runtime služby Functions a referenční informace pro kódování funkcí a definování triggerů a vazeb. - Místní psaní kódu a testování funkcí Azure Functions
Popisuje možnosti pro místní vývoj funkcí.