Dela via


API-stöd i Azure Static Web Apps med Azure API Management

Azure API Management är en tjänst som gör att du kan skapa en modern API-gateway för befintliga serverdelstjänster.

När du länkar azure API Management-tjänsten till din statiska webbapp skickas alla begäranden till din statiska webbapp med en väg som börjar med /api till samma väg i Azure API Management-tjänsten.

En Azure API Management-tjänst kan länkas till flera statiska webbappar samtidigt. En API Management-produkt skapas för varje länkad statisk webbapp. Alla API:er som läggs till i produkten är tillgängliga för den associerade statiska webbappen.

Alla prisnivåer för Azure API Management är tillgängliga för användning med Azure Static Web Apps.

API-alternativ för Static Web Apps omfattar följande Azure-tjänster:

Mer information finns i översikten över API:er.

Kommentar

Integreringen med Azure API Management 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 API-hanteringsinstans till din statiska webbapp måste du ha en befintlig Azure API Management-resurs och en statisk webbapp.

Resurs Beskrivning
Azure API Management Om du inte redan har en följer du stegen i instansguiden Skapa en ny Azure API Management-tjänst.
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 API Management-instans som exponerar en slutpunkt via följande plats.

https://my-api-management-instance.azure-api.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 URL:erna pekar på samma API-slutpunkt. Slutpunkten på API Management-instansen 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.

Följ dessa steg om du vill länka en Azure API Management-tjänst som API-serverdel för 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 länka API Management-tjänsten till. Markera Länk.

  4. I Resurstyp för serverdelen väljer du API Management.

  5. I Prenumeration väljer du den prenumeration som innehåller den Azure API Management-tjänst som du vill länka.

  6. I Resursnamn väljer du Azure API Management-tjänsten.

  7. Markera Länk.

Viktigt!

När länkningsprocessen är klar skickas begäranden till vägar som börjar med /api till din Azure API Management-tjänst. Inga API:er exponeras dock som standard. Se Konfigurera API:er för att ta emot begäranden om att konfigurera en API Management-produkt för att tillåta de API:er som du vill använda.

Konfigurera API:er för att ta emot begäranden

Azure API Management har en produktfunktion som definierar hur API:er visas. Som en del av länkningsprocessen konfigureras API Management-tjänsten med en produkt med namnet Azure Static Web Apps - <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> (Linked).

Om du vill göra API:er tillgängliga för din länkade statiska webbapp lägger du till dem i produkten.

  1. I API Management-instansen i portalen väljer du fliken Produkter .

  2. Azure Static Web Apps - <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> (Linked) Välj produkten.

  3. Välj + Lägg till API.

  4. Välj de API:er som du vill exponera från dina Static Web Apps och välj sedan länken Välj .

Screenshot of the API Management Products API blade in the Azure portal, showing how to add an API to the product created for the Static Web Apps resource.

Länkningsprocessen tillämpar också automatiskt följande konfiguration på API Management-tjänsten:

  • Den produkt som är associerad med den länkade statiska webbappen är konfigurerad för att kräva en prenumeration.
  • En API Management-prenumeration med namnet Generated for Static Web Apps resource with default hostname: <STATIC_WEB_APP_AUTO_GENERATED_HOSTNAME> skapas och begränsas till produkten med samma namn.
  • En princip för inkommande validering och jwt läggs till i produkten för att endast tillåta begäranden som innehåller en giltig åtkomsttoken från den länkade statiska webbappen.
  • Den länkade statiska webbappen är konfigurerad för att inkludera prenumerationens primära nyckel och en giltig åtkomsttoken vid proxybegäranden till API Management-tjänsten.

Viktigt!

Om du ändrar principen validate-jwt eller återskapar prenumerationens primärnyckel förhindrar du att din statiska webbapp proxysöker till API Management-tjänsten. Ändra eller ta inte bort den prenumeration eller produkt som är associerad med din statiska webbapp när de är länkade.

Så här avlänkar du en Azure API Management-tjänst från en statisk webbapp:

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

  2. Leta upp den miljö som du vill ta bort länken till och välj namnet på API Management-tjänsten.

  3. 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 DIN API Management-tjänst.

Kommentar

Api Management-produkten och prenumerationen som är associerad med den länkade statiska webbappen tas inte bort automatiskt. Du kan ta bort dem från API Management-tjänsten.

Felsökning

Om API:erna inte är associerade med DEN API Management-produkt som skapats för Static Web Apps-resursen returnerar åtkomst till en /api väg i din statiska webbapp följande fel från API Management.

{
  "statusCode": 401,
  "message": "Access denied due to invalid subscription key. Make sure to provide a valid key for an active subscription."
}

Lös det här felet genom att konfigurera de API:er som du vill exponera i dina Static Web Apps för den produkt som skapats för den, enligt beskrivningen i avsnittet Konfigurera API:er för att ta emot begäranden .

Nästa steg