Lägga till ett API i Azure Static Web Apps med Azure Functions
Artikel
Du kan lägga till serverlösa API:er i Azure Static Web Apps som drivs av Azure Functions. Den här artikeln visar hur du lägger till och distribuerar ett API till en Azure Static Web Apps-webbplats.
Node.js v18 för att köra klientdelsappen och API:et.
Tips
Du kan använda nvm-verktyget för att hantera flera versioner av Node.js i ditt utvecklingssystem.
I Windows kan NVM för Windows installeras via Winget.
När du har distribuerat ett klientdelsprogram till Azure Static Web Apps klonar du din applagringsplats. Du kan till exempel klona lagringsplatsen med hjälp av kommandoraden git .
Innan du kör följande kommando måste du ersätta <YOUR_GITHUB_USERNAME> med ditt GitHub-användarnamn.
Öppna roten för appens lagringsplats i Visual Studio Code. Mappstrukturen innehåller källan för klientdelsappen och GitHub-arbetsflödet för Static Web Apps i mappen .github/workflows .
Files
├── .github
│ └── workflows
│ └── azure-static-web-apps-<DEFAULT_HOSTNAME>.yml
│
└── (folders and files from your static web app)
Skapa API:et
Du skapar ett Azure Functions-projekt för din statiska webbapps API. Som standard skapar Visual Studio Code-tillägget Static Web Apps projektet i en mapp med namnet API i roten på lagringsplatsen.
Tryck på F1 för att öppna kommandopaletten.
Välj Azure Static Web Apps: Skapa HTTP-funktion.... Om du uppmanas att installera Azure Functions-tillägget installerar du det och kör det här kommandot igen.
När du uppmanas till det anger du följande värden:
Prompt
Värde
Välj ett språk
JavaScript
Välj en programmeringsmodell
V4
Ange ett funktionsnamn
meddelande
Tips
Du kan lära dig mer om skillnaderna mellan programmeringsmodeller i utvecklarguiden för Azure Functions
Ett Azure Functions-projekt genereras med en HTTP-utlöst funktion. Din app har nu en projektstruktur som liknar följande exempel.
Files
├── .github
│ └── workflows
│ └── azure-static-web-apps-<DEFAULT_HOSTNAME>.yml
│
├── api
├── └──src
│ │ │ functions
│ │ │ └── message.js
│ │ └── index.js
│ ├── .funcignore
│ ├── host.json
│ ├── local.settings.json
│ ├── package-lock.json
│ └── package.json
│
└── (...plus other folders and files from your static web app)
Ändra message sedan funktionen för att returnera ett meddelande till klientdelen. Uppdatera funktionen i src/functions/message.js med följande kod.
Om du vill köra klientdelsappen och API:et tillsammans lokalt tillhandahåller Azure Static Web Apps ett CLI som emulerar molnmiljön. CLI använder Azure Functions Core Tools för att köra API:et.
Installera kommandoradsverktyg
Se till att du har de nödvändiga kommandoradsverktygen installerade.
Viktigt
För att förbättra säkerheten för distributioner från Static Web Apps CLI infördes en icke-bakåtkompatibel ändring som kräver att du uppgraderar till den senaste versionen (2.0.2) av Static Web Apps CLI senast den 15 januari 2025.
Bash
npm install -g @azure/static-web-apps-cli
Tips
Om du inte vill installera kommandoraden swa globalt kan du använda npx swa i stället för swa i följande instruktioner.
Skapa klientdelsapp
Om din app använder ett ramverk skapar du appen för att generera utdata innan du kör Static Web Apps CLI.
Installera npm-beroenden och skapa appen i mappen dist/angular-basic .
Bash
npm install
npm run build --prod
Installera npm-beroenden och skapa appen i byggmappen.
Bash
npm install
npm run build
Installera npm-beroenden och skapa appen i dist-mappen .
Bash
npm install
npm run build
Köra appen lokalt
Kör klientdelsappen och API:et tillsammans genom att starta appen med Static Web Apps CLI. Genom att köra de två delarna av programmet på det här sättet kan CLI hantera klientdelens byggutdata från en mapp och göra API:et tillgängligt för appen som körs.
Starta Static Web Apps CLI med kommandot i roten start på lagringsplatsen. Justera argumenten om din app har en annan mappstruktur.
Skicka den aktuella mappen (src) och API-mappen (api) till CLI.
Bash
swa start src --api-location api
Skicka utdatamappen för bygget (dist/angular-basic) och API-mappen (api) till CLI.
Bash
swa start dist/angular-basic --api-location api
Skicka utdatamappen för bygget (build) och API-mappen (api) till CLI.
Bash
swa start build --api-location api
Skicka utdatamappen för bygget (dist) och API-mappen (api) till CLI.
Bash
swa start dist --api-location api
Windows-brandväggen kan uppmanas att begära att Azure Functions-körningen kan komma åt Internet. Markera Tillåt.
När CLI-processerna startar får du åtkomst till din app på http://localhost:4280/. Observera hur sidan anropar API:et och visar dess utdata, Hello from the API.
Om du vill stoppa CLI skriver du Ctrl + C.
Lägga till API-plats i arbetsflödet
Innan du kan distribuera din app till Azure uppdaterar du lagringsplatsens GitHub Actions-arbetsflöde med rätt plats för DIN API-mapp.
Öppna arbetsflödet på .github/workflows/azure-static-web-apps-DEFAULT-HOSTNAME><.yml.
Sök efter egenskapen api_location och ange värdet till api.
YAML
###### Repository/Build Configurations - These values can be configured to match your app requirements. ####### For more information regarding Static Web App workflow configurations, please visit: https://aka.ms/swaworkflowconfigapp_location:"src"# App source code pathapi_location:"api"# Api source code path - optionaloutput_location:""# Built app content directory - optional###### End of Repository/Build Configurations ######
Obs! Ovanstående värden api_location för ,app_location,output_location är för inget ramverk och dessa värden ändras baserat på ditt ramverk.
Spara filen.
Distribuera ändringar
Om du vill publicera ändringar i din statiska webbapp i Azure checkar du in och push-överför koden till den fjärranslutna GitHub-lagringsplatsen.
Tryck på F1 för att öppna kommandopaletten.
Välj kommandot Git: Commit All (Git: Commit All).
När du uppmanas att skicka ett incheckningsmeddelande anger du feat: lägg till API och checka in alla ändringar på din lokala git-lagringsplats.
Tryck på F1 för att öppna kommandopaletten.
Välj kommandot Git: push.
Dina ändringar skickas till fjärrlagringsplatsen i GitHub, vilket utlöser GitHub Actions-arbetsflödet för Static Web Apps för att skapa och distribuera din app.
Öppna lagringsplatsen i GitHub för att övervaka statusen för din arbetsflödeskörning.
När arbetsflödet körs går du till din statiska webbapp för att visa dina ändringar.
Publicera en Angular-, React-, Svelte- eller Vue JavaScript-app och -API med Azure Static Web Apps och Azure Functions. Distribuera din kod från GitHub till en mellanlagringsplats med hjälp av förhandsversions-URL:er.
Skapa lösningar från slutpunkt till slutpunkt i Microsoft Azure för att skapa Azure Functions, implementera och hantera webbappar, utveckla lösningar som använder Azure Storage med mera.