Cvičení – vytvoření projektu Azure Functions
Vaše webová aplikace pro nákupní seznam potřebuje rozhraní API. V tomto cvičení sestavíte a spustíte rozhraní API pomocí projektu Azure Functions. Odtud rozšíříte rozhraní API o novou funkci pomocí rozšíření Azure Functions pro Visual Studio.
V tomto cvičení provedete následující kroky:
- Při přípravě na provedení změn webové aplikace vytvořte větev.
- Prozkoumejte projekt Azure Functions.
- Vytvořte funkci HTTP GET.
- Nahraďte počáteční kód funkce logikou pro získání produktů.
- Nakonfigurujte webovou aplikaci tak, aby proxy požadavky HTTP na rozhraní API.
- Spusťte rozhraní API a webovou aplikaci.
Poznámka:
Ujistěte se, že jste nakonfigurovali Visual Studio pro vývoj pro Azure pomocí .NET.
Získání aplikace funkcí
Teď přidáte rozhraní API a připojíte ho k front-endové aplikaci. Projekt Api zahrnuje neúplný projekt Azure Functions, takže ho nyní dokončíme.
Vytvoření větve rozhraní API
Před provedením změn v aplikaci je vhodné pro změny vytvořit novou větev. Chystáte se dokončit rozhraní API pro vaši aplikaci, takže vytvořte novou větev v Gitu pojmenovanou api.
Dokončete rozhraní API pro Azure Functions
Projekt api obsahuje váš projekt Azure Functions spolu se třemi funkcemi.
| Třída | metoda | Postup |
|---|---|---|
| ProductsPost | PŘÍSPĚVEK | products |
| ProductsPut | VLOŽIT | products/:id |
| ProductsDelete | VYMAZAT | products/:id |
Vaše rozhraní API zahrnuje trasy pro manipulaci s produkty v nákupním seznamu, ale chybí v něm trasa pro jejich načtení. Pojďme to přidat dál.
Vytvořte funkci HTTP GET
Ve Visual Studio klikněte pravým tlačítkem myši na API projekt a pak vyberte Přidat>Novou položku.
V dialogovém okně Přidat novou položku vyberte funkci Azure Functions.
Jako název souboru funkce zadejte ProductsGet.cs .
Jako typ funkce vyberte trigger HTTP .
V rozevíracím seznamu v poli Úroveň autorizace vyberte Anonymní.
Vyberte Přidat.
Aplikaci Azure Functions jste právě rozšířili o funkci, abyste získali své produkty!
Nakonfigurujte metodu HTTP a koncový bod trasy
Všimněte si, že Run metoda nově vytvořené třídy jazyka C# má HttpTrigger atribut prvního argumentu, tj HttpRequest. Tento atribut definuje úroveň přístupu funkce, metody HTTP pro naslouchání a koncový bod trasy.
Koncový bod trasy je null ve výchozím nastavení, což znamená, že koncový bod používá hodnotu atributu FunctionName , což je ProductsGet.
Route Nastavením vlastnosti přepíšete "products" výchozí chování.
V současné době se vaše funkce aktivuje v požadavku HTTP GET na produkty. Vaše Run metoda vypadá jako následující kód:
[FunctionName("ProductsGet")]
public static async Task<IActionResult> Run(
[HttpTrigger(AuthorizationLevel.Anonymous, "get", "post", Route = null)] HttpRequest req,
ILogger log)
Aktualizujte logiku směrování
Tělo Run metody se spustí při spuštění funkce.
Pokud chcete získat produkty, musíte v metodě aktualizovat logiku Run . V souboru je logika přístupu k datům ProductData.cs jako třída s názvem ProductData, která je k dispozici prostřednictvím injektáže závislostí jako IProductData rozhraní. Rozhraní má metodu, která se nazývá GetProducts, která vrací Task<IEnumerable<Product> asynchronně vrací seznam produktů.
Teď změňte koncový bod funkce tak, aby vracel produkty:
Otevřete ProductsGet.cs.
Jeho obsah nahraďte následujícím kódem.
using Microsoft.AspNetCore.Http; using Microsoft.AspNetCore.Mvc; using Microsoft.Azure.WebJobs; using Microsoft.Azure.WebJobs.Extensions.Http; using System.Threading.Tasks; namespace Api; public class ProductsGet { private readonly IProductData productData; public ProductsGet(IProductData productData) { this.productData = productData; } [FunctionName("ProductsGet")] public async Task<IActionResult> Run( [HttpTrigger(AuthorizationLevel.Anonymous, "get", Route = "products")] HttpRequest req) { var products = await productData.GetProducts(); return new OkObjectResult(products); } }
V předchozíchzměnách Do konstruktoru jste přidali rozhraní, aby architektura injektáže závislostí mohl vložit ProductData třídu. Nakonec jste nakonfigurovali Run funkci tak, aby při zavolání vrátila seznam produktů.
Místní konfigurace sdílení prostředků mezi zdroji (CORS)
Při publikování do Azure Static Web Apps si nemusíte dělat starosti se sdílením prostředků mezi zdroji (CORS). Služba Azure Static Web Apps automaticky nakonfiguruje vaši aplikaci tak, aby dokázala komunikovat s vaším rozhraním API v Azure pomocí reverzního proxy. Při místním spuštění ale musíte CORS nakonfigurovat, abyste umožnili komunikaci webové aplikace a rozhraní API.
Teď vyžádejte azure Functions, aby vaší webové aplikaci umožňovala provádět požadavky HTTP na rozhraní API ve vašem počítači.
Otevřete soubor s názvem launchSettings.json ve složce Vlastnosti projektu rozhraní API .
- Pokud soubor neexistuje, vytvořte ho.
Aktualizujte obsah souboru:
{ "profiles": { "Api": { "commandName": "Project", "commandLineArgs": "start --cors *" } } }
Poznámka:
Tímto souborem ovládáte, jak Visual Studio spustí nástroje Azure Functions. Pokud chcete použít nástroj příkazového řádku Azure Functions, budete také potřebovat souborlocal.settings.json popsaný v dokumentaci k nástrojům Azure Functions Core Tools. Soubor local.settings.json je uvedený v souboru .gitignore , který brání v nasdílení tohoto souboru do GitHubu. Důvodem je to, že byste v tomto souboru mohli ukládat tajné kódy, které nechcete mít na GitHubu. Proto jste museli vytvořit soubor při vytváření úložiště ze šablony.
Spuštění rozhraní API a webové aplikace
Teď je čas sledovat spolupráci webové aplikace a projektu Azure Functions.
V sadě Visual Studio klikněte pravým tlačítkem na řešení Nákupní seznam .
Vyberte Konfigurovat projekty po spuštění.
Vyberte možnost Několik spouštěcích projektů.
Nastavte rozhraní API a klienta tak, aby se jako jejich akcespustily, a pak vyberte OK.
Spusťte ladicí program.
Přejděte do aplikace
Je čas podívat se, jak vaše aplikace běží místně s rozhraním API Azure Functions.
Přejděte na webovou aplikaci (například https://localhost:44348/).
Vytvořili jste aplikaci a teď je spuštěná místně a požadavky HTTP GET na vaše rozhraní API.
Teď zastavte spuštěnou aplikaci a rozhraní API odpojením ladicího programu v sadě Visual Studio.
Další kroky
Vaše aplikace funguje místně a vaším dalším krokem je publikovat aplikaci společně s rozhraním API.