Importera ett WebSocket-API

Med API Management WebSocket API-lösningen kan du nu hantera, skydda, observera och exponera både WebSocket- och REST-API:er med API Management och tillhandahålla en central hubb för identifiering och användning av alla API:er. API-utgivare kan snabbt lägga till ett WebSocket-API API Management via:

  • En enkel gest i Azure Portal och
  • Den API för hantering och Azure Resource Manager.

Du kan skydda WebSocket-API:er genom att tillämpa befintliga principer för åtkomstkontroll, till exempel JWT-validering. Du kan också testa WebSocket-API:er med hjälp av API-testkonsolerna i både Azure Portal- och utvecklarportalen. Med befintliga observerbarhetsfunktioner som bygger på API Management mått och loggar för övervakning och felsökning av WebSocket-API:er.

I den här artikeln kommer du att:

  • Förstå Websocket-genomströmningsflödet.
  • Lägg till ett WebSocket-API API Management instansen.
  • Testa WebSocket-API:et.
  • Visa mått och loggar för websocket-API:et.
  • Lär dig begränsningarna för WebSocket-API:et.

Förutsättningar

WebSocket-genomströmning

API Management har stöd för WebSocket-genomströmning.

Visuell illustration av WebSocket-genomströmningsflöde

Under genomströmningen för WebSocket upprättar klientprogrammet en WebSocket-anslutning med API Management Gateway, som sedan upprättar en anslutning med motsvarande backend-tjänster. API Management sedan proxyservrar för WebSocket-klient-server-meddelanden.

  1. Klientprogrammet skickar en WebSocket-handskakningsbegäran till APIM-gatewayen som anropar onHandshake-åtgärd.
  2. APIM-gatewayen skickar WebSocket-handskakningsbegäran till motsvarande serverdelstjänst.
  3. Backend-tjänsten uppgraderar en anslutning till WebSocket.
  4. APIM-gatewayen uppgraderar motsvarande anslutning till WebSocket.
  5. När anslutningsparet har upprättats kommer APIM att skicka meddelanden fram och tillbaka mellan klientprogrammet och backend-tjänsten.
  6. Klientprogrammet skickar ett meddelande till APIM-gatewayen.
  7. APIM-gatewayen vidarebefordrar meddelandet till backend-tjänsten.
  8. Backend-tjänsten skickar ett meddelande till APIM-gatewayen.
  9. APIM-gatewayen vidarebefordrar meddelandet till klientprogrammet.
  10. När endera sidan kopplas från avslutar APIM motsvarande anslutning.

Anteckning

Anslutningarna på klientsidan och backend-sidan består av en-till-en-mappning.

onHandshake-åtgärd

Enligt WebSocket-protokollet,när ett klientprogram försöker upprätta en WebSocket-anslutning med en serverdelstjänst, skickar det först en inledande handskakningsbegäran. Varje WebSocket-API i API Management har en onHandshake-åtgärd. onHandshake är en oföränderlig, oremovable, automatiskt skapad systemåtgärd. OnHandshake-åtgärden gör det möjligt för API-utgivare att fånga upp dessa handskakningsbegäranden och tillämpa API Management på dem.

exempel på onHandshake-skärm

Lägga till ett WebSocket-API

  1. Gå till din API Management instans.

  2. I navigeringsmenyn på sidan går du till avsnittet API:er och väljer API:er.

  3. Under Definiera ett nytt API väljer du WebSocket-ikonen.

  4. I dialogrutan väljer du Fullständig och fyller i de obligatoriska formulärfälten.

    Fält Beskrivning
    Visningsnamn Namnet som websocket-API:et ska visas med.
    Name Rånamn för WebSocket-API:et. Fylls i automatiskt när du skriver visningsnamnet.
    WebSocket-URL Bas-URL:en med ditt websocket-namn. Till exempel: ws://example.com/your-socket-name
    URL-schema Acceptera standardinställningarna
    API URL-suffix Lägg till ett URL-suffix för att identifiera det här specifika API:et API Management instansen. Det måste vara unikt i den här APIM-instansen.
    Produkter Associera WebSocket-API:et med en produkt för att publicera det.
    Gateways Associera websocket-API:et med befintliga gatewayer.
  5. Klicka på Skapa.

Testa WebSocket-API:et

  1. Gå till websocket-API:et.

  2. I WebSocket-API:et väljer du åtgärden onHandshake.

  3. Välj fliken Test för att få åtkomst till testkonsolen.

  4. Du kan också ange frågesträngsparametrar som krävs för WebSocket-handskakningen.

    test-API-exempel

  5. Klicka på Anslut.

  6. Visa anslutningsstatus i Utdata.

  7. Ange värdet i Nyttolast.

  8. Klicka på Skicka.

  9. Visa mottagna meddelanden i Utdata.

  10. Upprepa föregående steg för att testa olika nyttolaster.

  11. När testningen är klar väljer du Koppla från.

Visa mått och loggar

Använd standardfunktioner API Management och Azure Monitor för att övervaka WebSocket-API:er:

  • Visa API-mått i Azure Monitor
  • Du kan också aktivera diagnostikinställningar för att samla in och visa API Management gatewayloggar, inklusive WebSocket API-åtgärder

Följande skärmbild visar till exempel de senaste WebSocket API-svaren med kod från tabellen 101 ApiManagementGatewayLogs. Dessa resultat anger en lyckad växling av begäranden från TCP till WebSocket-protokollet.

Frågeloggar för WebSocket API-begäranden

Begränsningar

Nedan visas de aktuella begränsningarna för WebSocket-stöd i API Management:

  • WebSocket-API:er stöds inte ännu på förbrukningsnivån.
  • WebSocket-API:er stöds inte ännu i gatewayen med egen värd.
  • Azure CLI, PowerShell och SDK stöder för närvarande inte hanteringsåtgärder för WebSocket-API:er.

Principer som inte stöds

Följande principer stöds inte av och kan inte tillämpas på onHandshake-åtgärden:

  • Fingera svar
  • Hämta från cachen
  • Lagra till cache
  • Tillåt anrop mellan domäner
  • CORS
  • JSONP
  • Ange metod för begäran
  • Ange brödtext
  • Konvertera XML till JSON
  • Convert JSON to XML (Konvertera JSON till XML)
  • Transformera XML med XSLT
  • Verifiera innehåll
  • Verifiera parametrar
  • Verifiera huvuden
  • Verifiera statuskod

Anteckning

Om du har tillämpat principerna i ett högre omfång (dvs. global eller produkt) och de har ärvts av ett WebSocket-API via principen kommer de att hoppas över vid körning.

Nästa steg