Bring Your Own Functions till Azure Static Web Apps
Azure Static Web Apps tillhandahåller API-integrering så att du kan skapa klientwebbprogram som är beroende av serverdels-API:er för data och tjänster. De två API-integreringsalternativen är: hanterade funktioner och ta med egna serverdelar. Mer information om skillnaderna mellan de här alternativen finns i översikten.
Den här artikeln visar hur du länkar en befintlig Azure Functions-app till en Azure Static Web Apps-resurs.
Kommentar
Integreringen med Azure Functions kräver standardplanen för Static Web Apps.
Serverdelsintegrering stöds inte i statiska webbappars pull-begärandemiljöer.
Förutsättningar
Om du vill länka en funktionsapp till din statiska webbapp måste du ha en befintlig Azure Functions-resurs och en statisk webbapp.
Resurs | Beskrivning |
---|---|
Azure Functions | Om du inte redan har en följer du stegen i guiden Komma igång med Azure Functions . |
Befintlig statisk webbapp | Om du inte redan har en följer du stegen i komma igång-guiden för att skapa en statisk webbapp utan ramverk . |
Exempel
Överväg en befintlig Azure Functions-app som exponerar en slutpunkt via följande plats.
https://my-functions-app.azurewebsites.net/api/getProducts
När du har länkat kan du komma åt samma slutpunkt via api
sökvägen från din statiska webbapp, som du ser i det här exemplets URL.
https://red-sea-123.azurestaticapps.net/api/getProducts
Båda slutpunkts-URL:erna pekar på samma funktion. Slutpunkten i funktionsappen måste ha prefixet /api
eftersom Static Web Apps matchar begäranden som görs till /api
och proxyservrar hela sökvägen till den länkade resursen.
Länka en befintlig Azure Functions-app
Ta bort hanterade funktioner från din Static Web Apps-resurs (om det finns)
Innan du associerar en befintlig Functions-app måste du först justera konfigurationen av din statiska webbapp för att ta bort hanterade funktioner om du har några.
Länka Azure Functions-appen till static Web Apps-resursen
Öppna din Static Web Apps-instans i Azure-portalen.
På menyn Inställningar väljer du API:er.
På raden Produktion väljer du Länk för att öppna fönstret Länka ny serverdel .
Ange följande inställningar.
Inställning Värde Resurstyp för serverdel Välj Funktionsapp. Prenumeration Välj ditt Azure-prenumerationsnamn. Resursnamn Välj namnet på Azure Functions-appen. Serverdelsfack Välj facknamnet för Azure-funktionen. Markera Länk.
Azure Functions-appen är nu mappad till vägen för /api
din statiska webbapp.
Viktigt!
Se till att ange api_location
värdet till en tom sträng (""
) i arbetsflödeskonfigurationsfilen innan du länkar ett befintligt Functions-program. Dessutom förutsätter anrop att den externa funktionsappen behåller standardvägprefixet api
. Många appar tar bort det här prefixet i host.json. Kontrollera att prefixet finns i konfigurationen, annars misslyckas anropet.
Distribution
Du ansvarar för att konfigurera ett distributionsarbetsflöde för din Azure Functions-app.
Avlänka en Azure Functions-app
Ta bort länk till Functions-appen från Static Web Apps
Så här avlänkar du en funktionsapp från en statisk webbapp:
Gå till den statiska webbappen i Azure-portalen.
Välj API:er på navigeringsmenyn.
Leta upp den miljö som du vill ta bort länken till och välj funktionsappens namn.
Välj Ta bort länk.
När avlänkningsprocessen är klar skickas inte längre begäranden till vägar som börjar med /api
till Azure Functions-appen.
Kommentar
För att förhindra att funktionsappen oavsiktligt exponeras för anonym trafik tas inte identitetsprovidern som skapats av länkningsprocessen bort automatiskt. Du kan ta bort identitetsprovidern med namnet Azure Static Web Apps (länkad) från funktionsappens autentiseringsinställningar.
Ta bort autentisering från Azure Functions-resursen
Följ dessa steg för att ta bort identitetsprovidern om du vill att din Azure Functions-app ska kunna ta emot anonym trafik:
Gå till Azure Functions-resursen i Azure-portalen.
Välj Autentisering på navigeringsmenyn.
I listan över identitetsprovidrar tar du bort identitetsprovidern som är relaterad till static web apps-resursen.
Välj Ta bort autentisering för att ta bort autentisering och tillåta anonym trafik till din Azure Functions-resurs.
Funktionsappen kan nu ta emot anonym trafik.
Säkerhetsbegränsningar
Autentisering och auktorisering: Om autentiserings- och auktoriseringsprinciper inte redan har konfigurerats i din befintliga Functions-app har den statiska webbappen exklusiv åtkomst till API:et. Om du vill göra functions-appen tillgänglig för andra program lägger du till en annan identitetsprovider eller ändrar säkerhetsinställningarna för att tillåta oautentiserad åtkomst.
Kommentar
Om du aktiverar autentisering och auktorisering i din länkade Functions-app måste den använda Azure App Service Authentication och auktoriseringsprovider version 2.
Nödvändig offentlig tillgänglighet: En befintlig Functions-app måste inte tillämpa följande säkerhetskonfigurationer.
- Begränsa IP-adressen för Functions-appen.
- Begränsa trafik via privata länkar eller tjänstslutpunkter.
Funktionsåtkomstnycklar: Om din funktion kräver en åtkomstnyckel måste du ange nyckeln med anrop från den statiska appen till API:et.
Begränsningar
- Endast en Azure Functions-app är tillgänglig för en enda statisk webbapp.
- Värdet
api_location
i arbetsflödeskonfigurationen måste vara inställt på en tom sträng. - Stöds inte i miljöer för pull-begäranden i Static Web Apps.
- Din Azure Functions-app kan svara på olika utlösare, men den statiska webbappen kan bara komma åt funktioner via Http-slutpunkter.