Cvičení – vytvoření projektu Azure Functions

Dokončeno

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 Code.

V tomto cvičení provedete následující kroky:

  1. Při přípravě na provedení změn webové aplikace vytvořte větev.
  2. Prozkoumejte projekt funkce Azure Functions.
  3. Vytvořte funkci HTTP GET.
  4. Nahraďte počáteční kód funkce logikou pro získání produktů.
  5. Nakonfigurujte webovou aplikaci tak, aby proxy požadavky HTTP na rozhraní API.
  6. Spusťte rozhraní API a webovou aplikaci.

Získejte aplikaci funkcí

Teď přidejte rozhraní API a připojte ho k front-endové aplikaci. Složka api-starter obsahuje nedokončený projekt Azure Functions. Pojďme to teď dokončit.

Vytvoření větve rozhraní API

Osvědčeným postupem je vytvoření nové větve pro budoucí změny v aplikaci. Jste před dokončením rozhraní API pro aplikaci a to je pro vytvoření větve určitě vhodný čas.

  1. V editoru Visual Studio Code otevřete paletu příkazů stisknutím klávesy F1.

  2. Zadejte a vyberte Git: Rezervovat do....

  3. Vyberte Vytvořit novou větev.

  4. Zadejte rozhraní API pro název nové větve a stiskněte Enter.

Právě jste vytvořili větev Git s názvem api.

Dokončete rozhraní API pro Azure Functions

Abyste mohli rozhraní API dokončit, začněte přesunutím počátečního kódu rozhraní API do složky s názvem api. Název této složky jste zadali pro api_location při vytváření instance Static Web Apps.

  1. V editoru Visual Studio Code otevřete paletu příkazů stisknutím klávesy F1.

  2. Zadejte a vyberte Terminál: Vytvořit nový terminál (v aktivním pracovním prostoru).

  3. Ujistěte se, že jste v kořenové složce projektu.

  4. Spuštěním následujícího příkazu Git přejmenujte složku api-starter na rozhraní API.

    git mv api-starter api
    
  5. Stisknutím klávesy F1 otevřete paletu příkazů.

  6. Zadejte a vyberte Git: Potvrdit vše.

  7. Zadejte rozhraní API pro potvrzení zprávy a stiskněte Enter.

Teď se v Průzkumníku editoru Visual Studio Code zobrazí složka api . Složka api obsahuje váš projekt Azure Functions spolu se třemi funkcemi.

Složka a soubor metoda Postup
api/products-post POST products
api/products-put PUT products/:id
api/products-delete DELETE products/:id

Vytvořte funkci HTTP GET

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 teď přidat.

Instalace rozšíření Azure Functions pro editor Visual Studio Code

Aplikace Azure Functions můžete vytvářet a spravovat pomocí rozšíření Azure Functions pro Visual Studio Code.

  1. Přejděte na Visual Studio Marketplace a nainstalujte rozšíření Azure Functions pro Visual Studio Code.

  2. Když se v editoru Visual Studio Code načte karta rozšíření, vyberte Nainstalovat.

  3. Po dokončení instalace vyberte Znovu načíst.

Poznámka:

Nezapomeňte nainstalovat nástroje Azure Functions Core Tools, které umožňují spouštět Azure Functions místně.

Vytvoření funkce

Teď rozšiřujete aplikaci Funkcí Azure o funkci, abyste získali své produkty.

  1. V editoru Visual Studio Code otevřete paletu příkazů stisknutím klávesy F1.

  2. Zadejte a vyberte Azure Functions: Vytvořit funkci.

  3. Po zobrazení výzvy k vytvoření funkce vyberte trigger HTTP.

  4. Jako název funkce zadejte products-get .

  5. Jako úroveň ověřování vyberte Anonymní .

Poznámka:

Aplikace Azure Functions se nachází ve složce api, která ji odděluje od projektů jednotlivých webových aplikací. Webové aplikace na bázi všech front-endových platforem volají stejné rozhraní API. Strukturu aplikace si můžete určit sami, ale pro účely této ukázky je užitečné si je zobrazovat odděleně.

Nakonfigurujte metodu HTTP a koncový bod trasy

Všimněte si, že složka api/products-get obsahuje soubor function.json. Tento soubor obsahuje konfiguraci dané funkce.

Na základě konvence bude mít koncový bod trasy stejný název jako složka, která funkci obsahuje. Vzhledem k tomu, že se funkce vytvoří ve složce products-get , koncový bod trasy se ve výchozím nastavení vygeneruje jako products-get. Vy ale chcete, aby koncovým bodem bylo products.

Nakonfigurujte funkci:

  1. Otevřete souborové rozhraní API/products-get/function.json.

  2. Všimnětesich GET POST

  3. Změňte pole metod tak, aby povolovat GET pouze požadavky.

  4. "route": "products" Za pole metod přidejte položku.

Vaše funkce se teď aktivuje při požadavku HTTP GET do products. Soubor function.json by teď měl vypadat jako následující kód:

{
  "bindings": [
    {
      "authLevel": "anonymous",
      "type": "httpTrigger",
      "direction": "in",
      "name": "req",
      "methods": ["get"],
      "route": "products"
    },
    {
      "type": "http",
      "direction": "out",
      "name": "res"
    }
  ]
}

Aktualizace logiky funkce

Soubor index.js ve složce api/products-get obsahuje logiku, která se spustí, když zadáte požadavek HTTP do určené trasy.

Abyste získali své produkty, musíte logiku aktualizovat. V modulu JavaScript /shared/product-data.js je logika přístupu k datům. Modul product-data vystavuje funkci getProducts, jejímž úkolem je načítat produkty pro nákupní seznam.

Teď změňte koncový bod funkce tak, aby vracel produkty:

  1. Otevřete souborové rozhraní API/products-get/index.js.

  2. Jeho obsah nahraďte následujícím kódem.

    const data = require('../shared/product-data');
    
    module.exports = async function (context, req) {
      try {
        const products = data.getProducts();
        context.res.status(200).json(products);
      } catch (error) {
        context.res.status(500).send(error);
      }
    };
    

Vaše funkce získá produkty a vrátí je se stavovým kódem 200, pokud je úspěšný.

Místní konfigurace sdílení prostředků mezi zdroji (CORS)

Při publikování do Azure Static Web Apps se nemusíte starat o 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.

Dejte tedy službě Azure Functions pokyn, aby na vašem počítači povolila webové aplikaci zadávání požadavků HTTP na rozhraní API.

  1. Vytvořte soubor s názvem api/local.settings.json.

  2. Do souboru přidejte následující obsah:

    {
      "Host": {
        "CORS": "http://localhost:4200"
      }
    }
    
    {
      "Host": {
        "CORS": "http://localhost:3000"
      }
    }
    
    {
      "Host": {
        "CORS": "http://localhost:5000"
      }
    }
    
    {
      "Host": {
        "CORS": "http://localhost:8080"
      }
    }
    

Poznámka:

Soubor local.settings.json je uveden v souboru .gitignore, který znemožňuje jeho odeslání na GitHub. Důvodem je to, že byste v tomto souboru mohli ukládat tajné kódy, které nechcete mít na GitHubu. A právě proto jste si museli tento soubor vytvořit při vytváření úložiště ze šablony.

Spusťte rozhraní API

Teď je čas podívat se na to, jak vaše webová aplikace a projekt Azure Functions fungují společně. Začněte spuštěním projektu Azure Functions místně provedením následujících kroků:

Poznámka:

Nezapomeňte nainstalovat nástroje Azure Functions Core Tools, které umožňují spouštět Azure Functions místně.

  1. Otevřete terminál Git a přejděte do složky api :

    cd api
    
  2. Spusťte aplikaci Azure Functions místně:

    npm install
    
    npm start
    

Spusťte webovou aplikaci

Vaše rozhraní API běží. Teď je potřeba nakonfigurovat front-endovou aplikaci tak, aby své požadavky HTTP směrovala na vaše rozhraní API. Front-endová aplikace běží na jednom portu a rozhraní API běží na jiném portu (7071). Každé front-endové rozhraní lze nakonfigurovat tak, aby požadavky HTTP bezpečně odesílala (jako proxy) na port.

Nakonfigurujte proxy port

Provedením následujících kroků nakonfigurujte proxy pro front-endovou aplikaci:

  1. Otevřete soubor angular-app/proxy.conf.json.

  2. target: 'http://localhost:7071' Vyhledejte nastavení.

  3. Všimněte si, že port cíle odkazuje na 7071.

  1. Otevřete soubor react-app/package.json.

  2. "proxy": "http://localhost:7071/", Vyhledejte nastavení.

  3. Všimněte si, že port proxy serveru odkazuje na 7071.

  1. Otevřete soubor svelte-app/rollup.config.js.

  2. Vyhledejte řádek kódu const api = 'http://localhost:7071/api';.

  3. Všimněte si, že port rozhraní API odkazuje na 7071.

  1. Otevřete soubor vue-app/vue.config.js.

  2. target: 'http://localhost:7071', Vyhledejte nastavení.

  3. Všimněte si, že port cíle odkazuje na 7071.

Spusťte front-endovou webovou aplikaci

Vaše rozhraní API už běží na portu 7071. Když teď webovou aplikaci spustíte, provede její požadavky HTTP na vaše rozhraní API. Provedením následujících kroků webovou aplikaci spusťte:

  1. Otevřete druhou instanci terminálu Git.

  2. Potom zadáním tohoto příkazu přejděte do složky preferované front-endové architektury:

    cd angular-app
    
    cd react-app
    
    cd svelte-app
    
    cd vue-app
    
  3. Spusťte front-endovou klientskou aplikaci:

    npm start
    
    npm start
    
    npm run dev
    
    npm run serve
    

Přejděte do aplikace

Je čas podívat se, jak vaše aplikace běží místně s rozhraním API Azure Functions.

  1. Přejděte na http://localhost:4200.
  1. Přejděte na http://localhost:3000.
  1. Přejděte na http://localhost:5000.
  1. Přejděte na http://localhost:8080.
  1. Vytvořili jste aplikaci a teď je spuštěná místně a požadavky HTTP GET na vaše rozhraní API. Teď v terminálech zastavte spuštěnou aplikaci a rozhraní API stisknutím kláves Ctrl-C .

Další kroky

Aplikace funguje místně a dalším krokem je publikování aplikace pomocí rozhraní API.