Importera ett WebSocket-API
GÄLLER FÖR: Utvecklare | Grundläggande | Basic v2 | Standard | Standard v2 | Premie
Med API Managements WebSocket API-lösning kan API-utgivare snabbt lägga till ett WebSocket-API i API Management via Azure-portalen, Azure CLI, Azure PowerShell och andra Azure-verktyg.
Kommentar
För närvarande är den här funktionen inte tillgänglig på arbetsytor.
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-portalen och utvecklarportalen. API Management bygger på befintliga observerbarhetsfunktioner och tillhandahåller mått och loggar för övervakning och felsökning av WebSocket-API:er.
I den här artikeln kommer du att:
- Förstå flödet för websocket-genomströmning.
- Lägg till ett WebSocket-API i din API Management-instans.
- Testa webSocket-API:et.
- Visa mått och loggar för webSocket-API:et.
- Lär dig begränsningarna för WebSocket API.
Förutsättningar
- En befintlig API Management-instans. Skapa en om du inte redan har gjort det.
- Ett WebSocket-API.
- Azure CLI
WebSocket-genomströmning
API Management stöder WebSocket-genomströmning.
Under webSocket-genomströmningen upprättar klientprogrammet en WebSocket-anslutning med API Management Gateway, som sedan upprättar en anslutning till motsvarande serverdelstjänster. API Management proxyservrar sedan WebSocket klient-server meddelanden.
- Klientprogrammet skickar en WebSocket-handskakningsbegäran till APIM-gatewayen och anropar onHandshake-åtgärden.
- APIM-gatewayen skickar webSocket-handskakningsbegäran till motsvarande serverdelstjänst.
- Serverdelstjänsten uppgraderar en anslutning till WebSocket.
- APIM-gatewayen uppgraderar motsvarande anslutning till WebSocket.
- När anslutningsparet har upprättats förmedlar APIM meddelanden fram och tillbaka mellan klientprogrammet och serverdelstjänsten.
- Klientprogrammet skickar ett meddelande till APIM-gatewayen.
- APIM-gatewayen vidarebefordrar meddelandet till serverdelstjänsten.
- Serverdelstjänsten skickar ett meddelande till APIM-gatewayen.
- APIM-gatewayen vidarebefordrar meddelandet till klientprogrammet.
- När någon av sidorna kopplas från avslutar APIM motsvarande anslutning.
Kommentar
Anslutningarna på klientsidan och serverdelen består av en-till-en-mappning.
onHandshake-åtgärd
När ett klientprogram försöker upprätta en WebSocket-anslutning med en serverdelstjänst skickar det först en inledande handskakningsbegäran enligt WebSocket-protokollet. Varje WebSocket-API i API Management har en onHandshake-åtgärd. onHandshake är en oföränderlig, oåterkallelig, automatiskt skapad systemåtgärd. Med onHandshake-åtgärden kan API-utgivare fånga upp dessa handskakningsbegäranden och tillämpa API Management-principer på dem.
Lägga till ett WebSocket-API
I den vänstra menyn väljer du API:er>+ Lägg till API.
Under Definiera ett nytt API väljer du WebSocket.
I dialogrutan väljer du Fullständig och slutför de obligatoriska formulärfälten.
Fält Description Display name 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 namnet på din websocket. Till exempel: ws://example.com/your-socket-name URL-schema Acceptera standardvärdet API:ets webbadressuffix Lägg till ett URL-suffix för att identifiera det här specifika API:et i den här API Management-instansen. Det måste vara unikt i den här APIM-instansen. Produkter Associera ditt WebSocket-API med en produkt för att publicera det. Gateways Associera ditt WebSocket-API med befintliga gatewayer. Klicka på Skapa.
Testa webSocket-API:et
Gå till websocket-API:et.
I webSocket-API:et väljer du åtgärden onHandshake.
Välj fliken Test för att komma åt testkonsolen.
Du kan också ange frågesträngsparametrar som krävs för webSocket-handskakningen.
Klicka på Anslut.
Visa anslutningsstatus i Utdata.
Ange värde i Nyttolast.
Klicka på Skicka.
Visa mottagna meddelanden i Utdata.
Upprepa föregående steg för att testa olika nyttolaster.
När testningen är klar väljer du Koppla från.
Visa mått och loggar
Använd standardfunktionerna 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, som omfattar WebSocket API-åtgärder
Följande skärmbild visar till exempel de senaste svaren från WebSocket API med kod 101
från tabellen ApiManagementGatewayLogs . Dessa resultat indikerar att begäranden från TCP har växlats till WebSocket-protokollet.
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öder följande giltiga bufferttyper för meddelanden: Close, BinaryFragment, BinaryMessage, UTF8Fragment och UTF8Message.
- För närvarande stöder inte principen för set-header att ändra vissa välkända rubriker, inklusive
Host
rubriker, i onHandshake-begäranden. - Under TLS-handskakningen med en WebSocket-serverdel verifierar API Management att servercertifikatet är betrott och att dess ämnesnamn matchar värdnamnet. Med HTTP-API:er verifierar API Management att certifikatet är betrott men validerar inte värdnamnet och ämnesmatchningen.
För Anslutningsgränser för WebSocket, se API Management-gränser.
Principer som inte stöds
Följande principer stöds inte av och kan inte tillämpas på onHandshake-åtgärden:
- Mock-svar
- Hämta från cache
- Lagra till cache
- Tillåt korsdomänanrop
- CORS
- JSONP
- Ange metod för begäran
- Ange brödtext
- Konvertera XML till JSON
- Konvertera JSON till XML
- Transformera XML med XSLT
- Verifiera innehåll
- Verifiera parametrar
- Verifiera rubriker
- Verifiera statuskod
Kommentar
Om du tillämpade principerna i högre omfång (dvs. global eller produkt) och de ärvdes av ett WebSocket-API via principen, hoppas de över vid körning.
Närliggande information
- Begränsningar för API-import
- Importera en OpenAPI-specifikation
- Importera ett SOAP-API
- Importera ett SOAP-API och konvertera till REST
- Importera ett App Service-API
- Importera ett API för containerapp
- Importera ett WebSocket-API
- Importera ett GraphQL-API
- Importera ett GraphQL-schema och konfigurera fältmatchare
- Importera en Azure-funktionsapp
- Importera en Azure-logikapp
- Importera en Service Fabric-tjänst
- Importera ett Azure OpenAI-API
- Importera ett OData-API
- Importera SAP OData-metadata
- Importera ett gRPC-API
- Redigera ett API