Dela via


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

Azure Container Apps är en hanterad plattform för att hantera serverlösa containrar och mikrotjänster.

När du länkar containerappen 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 containerappen.

När en containerapp är länkad till en statisk webbapp accepterar containerappen som standard endast begäranden som skickas via den länkade statiska webbappen. En containerapp kan länkas till en enda statisk webbapp i taget.

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 Container Apps 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 containerapp till din statiska webbapp måste du ha en befintlig Container Apps-resurs och en statisk webbapp.

Resurs Beskrivning
Azure Container Apps Om du inte redan har en följer du stegen i guiden Distribuera din första containerapp .
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 Container App-instans som exponerar en slutpunkt via följande plats.

https://my-container-app.red-river-123.eastus2.azurecontainerapps.io/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 i containerappen 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 containerapp 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-instansen till. Markera Länk.

  4. I Resurstyp för serverdel väljer du ContainerApp.

  5. I Prenumeration väljer du den prenumeration som innehåller den containerapp som du vill länka.

  6. I Resursnamn väljer du containerappen.

  7. Markera Länk.

När länkningsprocessen är klar skickas begäranden till vägar som börjar med /api till den länkade containerappen.

Hantera åtkomst till containerappen

Containerappen konfigureras med en identitetsprovider med namnet Azure Static Web Apps (Linked) som endast tillåter trafik som skickas via den statiska webbappen. Om du vill göra containerappen tillgänglig för andra program uppdaterar du dess autentiseringskonfiguration för att lägga till en annan identitetsprovider eller ändrar säkerhetsinställningarna så att oautentiserad åtkomst tillåts.

Så här avlänkar du en containerapp 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 namnet på containerappen.

  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 din containerapp.

Kommentar

För att förhindra att containerappen 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 containerappens autentiseringsinställningar.

Ta bort autentisering från Container Apps-resursen

Följ dessa steg för att ta bort identitetsprovidern om du vill att containerappresursen ska kunna ta emot anonym trafik:

  1. Gå till containerappresursen 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 Container Apps-resurs.

Container Apps-resursen kan nu ta emot anonym trafik.

Nästa steg