Při publikování aplikace Azure Functions existuje několik klíčových kroků, které je nutné dodržet, aby byla aplikace úspěšně nasazena do cloudu. V první řadě je třeba pečlivě sledovat výstupní okno během procesu publikování, jak ukazuje výstup z Visual Studio. Pokud používáte verzi .NET Preview, může se objevit varování týkající se podpory této verze. Pro úspěšné nasazení aplikace je nutné ověřit, že všechny kroky jsou provedeny správně a že výstupní složky obsahují správné soubory.
Po dokončení publikování se aplikace automaticky nasadí na Azure a je připravena k použití. V okně pro publikování uvidíte zprávu o úspěšném nasazení a můžete kliknout na odkaz pro otevření nasazené aplikace. Pokud používáte Visual Studio Code pro publikování, můžete využít dokumentaci dostupnou na oficiálních stránkách Azure pro podrobnosti o tomto postupu.
Testování aplikace po nasazení je nezbytné pro ověření, že vše funguje podle očekávání. Můžete to provést jednoduše tím, že do adresního řádku přidáte relativní URL adresu vašeho API, například /api/NumbersToWordsFunction?amount=987654321. Pokud je aplikace nasazena správně, tato adresa by měla vrátit očekávaný výstup.
Pokud je potřeba uvolnit prostředky, které byly využity pro provoz aplikace Azure Functions, je možné je jednoduše odstranit prostřednictvím Azure Portal. K tomu je nutné otevřít příslušnou Resource Group, ověřit, že obsahuje pouze potřebné zdroje (např. úložiště, aplikace Functions a plán aplikace), a poté ji smazat. Tento krok zajistí, že nebudete nadále hradit náklady na zbytečné služby.
V případě potřeby provádět úpravy a testování je možné přidat různé testy, které ověří znalosti o Azure Functions, například rozdíl mezi hostingovými modely, používání atributů pro spouštění funkcí při přijetí zprávy nebo jak správně naplánovat úlohu pomocí CRON výrazů.
Pokud se rozhodnete pro hlubší prozkoumání témat týkajících se Azure Functions, doporučuje se studovat odkazy, které poskytují detailní informace a návody, jak efektivně využívat funkce v rámci Azure.
Co je důležité pro čtenáře
Při práci s Azure Functions je nezbytné nejen zvládnout technické aspekty nasazení, ale také mít přehled o nákladech, které s tímto procesem souvisejí. Představte si Azure Functions jako prostředek pro vývoj a nasazení mikroslužeb bez nutnosti spravovat servery, ale s tím přichází i zodpovědnost za správu a optimalizaci nákladů. Pro správnou správu prostředků je důležité pravidelně kontrolovat nasazené aplikace a případně je upravovat nebo odstraňovat podle aktuálních potřeb projektu.
Užívání preview verzí .NET nebo jakékoliv jiné nestabilní verze by mělo být vždy dobře zváženo, zejména pokud se plánuje nasazení do produkčního prostředí. Je také důležité rozumět tomu, jak správně konfigurovat závislosti v aplikaci, což může mít vliv na její výkon a funkčnost v cloudovém prostředí.
Jak pracovat s proměnnými, operátory a manipulací s daty v SQL Serveru
SQL Server nabízí řadu nástrojů pro práci s daty, které jsou klíčové pro vývoj aplikací a správu databází. Mezi tyto nástroje patří proměnné, operátory, řízení toku a příkazy pro manipulaci s daty.
Začneme s proměnnými, které jsou základem pro uložení dočasných hodnot během provádění SQL dotazů. V SQL Serveru se proměnné deklarují pomocí příkazu SET. Například:
Je důležité si uvědomit, že proměnné mohou být také použity v různých kontextech, například pro uchování počtu řádků ovlivněných daným příkazem. V SQL Serveru existují globální proměnné, jako například @@ROWCOUNT, která vrací počet řádků, jež byly ovlivněny posledním provedeným příkazem, například po provedení operace aktualizace nebo smazání.
Další klíčovou součástí SQL je správné specifikování datových typů. SQL Server používá různé datové typy pro různá data a každý typ může mít svou pevnou velikost, například int používá čtyři bajty, smallint dva bajty a tinyint pouze jeden bajt. U textových a binárních datových typů můžeme určit, zda bude velikost proměnné pevná nebo proměnlivá, což je určeno přidáním předpony var nebo nvar. Typy jako varchar(40) umožňují variabilní velikost až do maximálně 40 znaků, zatímco char(40) vyžaduje vždy přesně 40 znaků.
Textové typy označené předponou n znamenají, že používají Unicode, což znamená, že každý znak zabírá dva bajty. Bez této předpony používají jeden bajt na znak. Správná volba datového typu je klíčová pro efektivní správu dat, což je důležité zejména v aplikacích, které zpracovávají různé jazyky a znaky.
T-SQL poskytuje řadu operátorů, které jsou podobné těm v jazyce C#, například pro přiřazení hodnoty (=), aritmetické operace (+, -, *, /, %), porovnávací operátory (<, >, <=, ==, !=) a logické operátory (AND, OR, NOT). Pro práci s textem je k dispozici operátor LIKE, který umožňuje hledání shod v textu. Můžete použít speciální znaky jako % (pro libovolný počet znaků), _ (pro jeden znak) nebo [] (pro určení povoleného rozsahu znaků, například [0-9A-Z]).
Důležitým nástrojem při manipulaci s daty je DML (Data Manipulation Language), který slouží k dotazům a změnám dat v tabulkách. Nejčastějším příkazem je SELECT, který je schopen vrátit data z jedné nebo více tabulek. Pro příklady:
Pro úpravu dat se používají příkazy INSERT, UPDATE, DELETE:
Příkaz DELETE lze nahradit efektivnějším TRUNCATE TABLE, který odstraní všechny řádky z tabulky bez podrobného logování každého odstranění. Je však nutné si být vědomý, že na tabulkách s referenčními vazbami (např. na tabulky s cizími klíči) tento příkaz nebude fungovat, dokud nebudou odstraněny všechny závislosti.
DML příkazy nejsou jediným způsobem, jak manipulovat se strukturou databáze. K tomu slouží DDL (Data Definition Language), která mění strukturu databáze, jako je vytváření tabulek, funkcí nebo uložených procedur. Například příkaz pro vytvoření tabulky:
Další příklady zahrnují přidání nových sloupců do existující tabulky nebo vytváření indexů pro zrychlení dotazů.
Pro efektivní práci s databázemi je také důležité znát nástroje pro práci s ADO.NET, které poskytují připojení k databázi a umožňují interakci mezi aplikacemi a SQL Serverem. Tento nástroj je součástí .NET frameworku a podporuje připojení k SQL Serveru, Azure SQL Database a dalším datovým zdrojům.
Výběr správného nástroje, znalost syntaxi a schopnost efektivně psát SQL dotazy jsou klíčové dovednosti pro správce databází a vývojáře aplikací, kteří se zabývají relačními databázemi.
Jak chránit aplikace pomocí autentifikace a autorizace?
V každé aplikaci je důležité zajistit bezpečnost uživatelských dat a chránit přístup k citlivým funkcím. V tomto kontextu se hodně mluví o dvou klíčových aspektech bezpečnosti: autentifikace a autorizace. Tyto procesy hrají zásadní roli při definování, kdo má přístup k určitým funkcím aplikace a jaké operace může provádět.
Autentifikace je proces, kterým aplikace ověřuje identitu uživatele. Když se uživatel přihlásí do aplikace, zadá své uživatelské jméno a heslo, což se použije k ověření jeho totožnosti. Pokud přihlášení probíhne úspěšně, aplikace může poskytnout přístup k funkcím a datům. Na druhou stranu autorizace určuje, co konkrétní uživatel může a nemůže dělat v rámci aplikace na základě jeho práv. To znamená, že i když je uživatel autentifikován, nemusí mít automaticky přístup k všem funkcím aplikace.
Příklad autentifikace a autorizace může vypadat takto: uživatel zadá své uživatelské jméno a heslo, což je následně ověřeno aplikací. Pokud přihlášení probíhne úspěšně, aplikace poskytne uživatelský objekt, který je spojený s rolí uživatele, například "Admins" nebo "Sales". Na základě této role aplikace rozhodne, jaké akce uživatel může vykonávat.
Pokud uživatel neprojde autentifikací nebo nemá dostatečná oprávnění, aplikace musí vhodně reagovat. V tomto případě může být uživatelovi zobrazeno chybové hlášení, například: "Přihlášení se nezdařilo" nebo "Uživatelský účet nemá potřebná oprávnění". Je nezbytné, aby aplikace neumožnila přístup k citlivým funkcím bez správného ověření a oprávnění.
Jedním z příkladů, jak chránit funkce aplikace, je metoda zabezpečené funkce, která vyžaduje, aby uživatel byl přihlášen a patřil k určité roli. Pokud podmínky nejsou splněny, metoda vrátí výjimku a uživatelský přístup je zamítnut. Tímto způsobem aplikace zabrání neautorizovaným uživatelům přístup k citlivým funkcím.
Pokud se podíváme na reálné implementace autentifikace a autorizace, ve skutečnosti byste neměli vytvářet vlastní bezpečnostní systémy. Je příliš pravděpodobné, že dojde k bezpečnostním chybám. Místo toho byste měli používat existující a osvědčené nástroje a služby, jako je například IdentityServer4 nebo Duende IdentityServer, které implementují standardy jako OAuth 2.0 a OpenID Connect. Tyto technologie poskytují solidní základy pro autentifikaci a autorizaci.
Dále je důležité si uvědomit, že zabezpečení aplikace není jen o autentifikaci a autorizaci, ale také o ochraně citlivých dat. Například, při uchovávání hesel v aplikaci, je nutné je hashovat a sůl přidávat k hodnotám, aby se zajistila jejich bezpečnost. Pokud jde o uložení citlivých údajů, jako jsou čísla kreditních karet, měly by být šifrovány, aby byly chráněny před neoprávněným přístupem.
V reálném světě se doporučuje používat produkty a nástroje od renomovaných poskytovatelů, kteří pravidelně aktualizují bezpečnostní protokoly. Například Microsoft Azure Active Directory je jedním z nejrozšířenějších řešení pro správu uživatelských účtů a oprávnění ve firmách.
Je rovněž důležité být si vědom problémů, které mohou nastat při špatném návrhu autentifikace a autorizace. Například pokud aplikace nesprávně spravuje uživatelské role, může umožnit neautorizovaným uživatelům přístup k citlivým datům nebo funkcím, což může vést k bezpečnostním incidentům.
Pravidelné testování, audit a aktualizace systému jsou klíčové pro udržení vysoké úrovně bezpečnosti aplikace. Bez ohledu na to, jak robustní je vaše bezpečnostní řešení, je vždy potřeba mít na paměti nové hrozby a rizika, která se mohou objevit.
Pokud se tedy rozhodnete implementovat autentifikaci a autorizaci ve své aplikaci, je zásadní se zaměřit na použití správných metod ověřování, jako jsou hashování hesel, správné přiřazování rolí a šifrování citlivých údajů. Používání standardizovaných a ověřených knihoven a protokolů zajistí bezpečné a efektivní zabezpečení vaší aplikace.
Jak vytvořit službu podporující GraphQL v .NET
ChilliCream na své domovské stránce uvádí: „V ChilliCream vytváříme ultimátní GraphQL platformu. Většina našeho kódu je open-source a navždy jím zůstane.“ Tato filozofie open-source se odráží v jejich vývoji a nástroji HotChocolate, což je platforma pro práci s GraphQL v ekosystému .NET. V tomto textu si ukážeme, jak vytvořit základní službu, která podporuje GraphQL, a to prostřednictvím ASP.NET Core.
Pro vytvoření aplikace, která bude podporovat GraphQL, se použije prázdný šablonový projekt ASP.NET Core, jelikož neexistuje specifická šablona pro GraphQL. I když není GraphQL vázán na HTTP protokol a může být hostován mimo webový server, pro začátek je tato volba rozumná. Pro přidání podpory pro GraphQL v projektu je potřeba přidat odpovídající balíček.
Začněme tím, že si vytvoříme nový projekt podle následujících pokynů:
-
Vytvořte nový projekt s šablonou ASP.NET Core Empty.
-
Nastavte pracovní prostor a soubor řešení na
Chapter11. -
Vytvořte projekt s názvem
Northwind.GraphQL. -
Při výběru dalších možností v Visual Studio 2022 zvolte:
-
Typ autentizace: žádný
-
Konfigurovat pro HTTPS: vybráno
-
Povolit Docker: nevybráno
-
Povolit OpenAPI podporu: nevybráno
-
Po vytvoření projektu je nutné přidat balíček pro podporu GraphQL. Odkaz na balíček HotChocolate.AspNetCore najdete na NuGet (https://www.nuget.org/packages/HotChocolate.AspNetCore/).
Dále je třeba upravit konfigurační soubor launchSettings.json, kde nastavíme porty pro HTTP a HTTPS a nastavíme výchozí URL pro GraphQL, jak je ukázáno v následujícím příkladu:
Po těchto úpravách můžeme přistoupit k samotné definici GraphQL schématu pro základní "Hello World" aplikaci. Pro tento účel vytvoříme ve složce projektu Northwind.GraphQL soubor Query.cs a v něm definujeme metodu GetGreeting(), která vrátí textový řetězec "Hello, World!".
V souboru Program.cs importujeme správný namespace a následně v konfigurační části přidáme podporu pro server GraphQL a registrujeme náš typ dotazu:
Nyní je potřeba nakonfigurovat endpoint pro GraphQL. V souboru Program.cs přidáme řádek pro mapování GraphQL endpointu:
Po spuštění aplikace pomocí HTTPS profilu si můžete ověřit, že vše funguje správně. K tomu slouží nástroj BananaCakePop, který umožňuje prozkoumat schéma GraphQL a vykonávat dotazy přímo z webového rozhraní.
Představme si, že chceme poslat dotaz na náš server GraphQL, abychom získali odpověď "Hello, World!". Při psaní dotazu v BananaCakePop použijeme automatické doplňování a napíšeme dotaz na pole greeting.
Výsledek dotazu bude vypadat následovně:
Pokud bychom chtěli dotaz pojmenovat, můžeme to provést takto:
Pojmenované dotazy mají výhodu v tom, že je možné je identifikovat pro účely telemetrie a monitorování, například při hostování v cloudu Microsoft Azure a monitorování prostřednictvím Application Insights.
Další důležitou vlastností je konvence při pojmenovávání metod v C#. Zatímco metody v C# používají TitleCase, GraphQL pole musí být pojmenována v camelCase. Takže, i když metoda v C# může mít název GetGreeting, v GraphQL dotazu použijeme pouze greeting.
Pokud bychom chtěli přidat další funkce, například návrat rozličných zpráv nebo náhodného čísla, můžeme upravit naši třídu Query takto:
Po restartu aplikace a obnovení schématu v BananaCakePop můžeme odesílat dotazy na nová pole, například pro náhodné číslo:
Tento přístup umožňuje rozšiřovat aplikaci o nové funkce a dotazy bez nutnosti měnit základní strukturu služby.
Ve chvíli, kdy je GraphQL schéma definováno a implementováno, je důležité si uvědomit, že GraphQL není pouze nástroj pro dotazování a manipulaci s daty. Je to také velmi flexibilní a rozšiřitelný způsob, jak integrovat různé zdroje dat do jediné API vrstvy. Je třeba si dobře naplánovat, jaké dotazy a mutation budou do systému přidány, jaké ochrany a validace dat budou potřeba a jak bude API optimalizováno pro výkon, zejména v případě, že se služba bude připojovat k různým externím zdrojům.
Jak nanomateriály zinku, hořčíku a uhlíkových nanotrubiček přispívají k odstraňování těžkých kovů z vody?
Jaká je role plátových tektonik v evoluci Země?
Jak efektivně spravovat přihlášení a uživatele v SQL Serveru pomocí PowerShellu
Jak vypadaly námořní výpravy a každodenní život na galérách v 15. století
Jak se Python může stát praktickým nástrojem pro každodenní problémy začátečníků?

Deutsch
Francais
Nederlands
Svenska
Norsk
Dansk
Suomi
Espanol
Italiano
Portugues
Magyar
Polski
Cestina
Русский