Dela via


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.

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.

  1. Ange api_location värdet till en tom sträng ("") i arbetsflödeskonfigurationsfilen.
  1. Öppna din Static Web Apps-instans i Azure-portalen.

  2. På menyn Inställningar väljer du API:er.

  3. 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.
  4. 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.

Så här avlänkar du en funktionsapp från en statisk webbapp:

  1. Gå till den statiska webbappen i Azure-portalen.

  2. Välj API:er på navigeringsmenyn.

  3. Leta upp den miljö som du vill ta bort länken till och välj funktionsappens namn.

  4. 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:

  1. Gå till Azure Functions-resursen i Azure-portalen.

  2. Välj Autentisering på navigeringsmenyn.

  3. I listan över identitetsprovidrar tar du bort identitetsprovidern som är relaterad till static web apps-resursen.

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

Nästa steg