WebSocket API'lerini içeri aktarma

ŞUNLAR IÇIN GEÇERLIDIR: Geliştirici | Temel | Temel v2 | Standart | Standart v2 | Premium

API Management'ın WebSocket API çözümüyle API yayımcıları Azure portalı, Azure CLI, Azure PowerShell ve diğer Azure araçları aracılığıyla API Management'a hızla bir WebSocket API'sini ekleyebilir.

Not

Şu anda bu özellik çalışma alanlarında kullanılamaz.

JWT doğrulaması gibi mevcut erişim denetimi ilkelerini uygulayarak WebSocket API'lerinin güvenliğini sağlayabilirsiniz. Ayrıca Hem Azure portalında hem de geliştirici portalında API test konsollarını kullanarak WebSocket API'lerini test edebilirsiniz. Mevcut gözlemlenebilirlik özelliklerini kullanan API Management, WebSocket API'lerini izlemek ve sorunlarını gidermek için ölçümler ve günlükler sağlar.

Bu makalede şunları yapacaksınız:

  • Websocket geçiş akışını anlama.
  • API Management örneğinize bir WebSocket API'sini ekleyin.
  • WebSocket API'nizi test edin.
  • WebSocket API'nizin ölçümlerini ve günlüklerini görüntüleyin.
  • WebSocket API'sinin sınırlamalarını öğrenin.

Önkoşullar

  • Mevcut bir API Management örneği. Henüz oluşturmadıysanız bir tane oluşturun.
  • WebSocket API'si.
  • Azure CLI

WebSocket geçişi

API Management, WebSocket geçişini destekler.

WebSocket geçiş akışının görsel çizimi

WebSocket geçişi sırasında istemci uygulaması API Management Ağ Geçidi ile bir WebSocket bağlantısı kurar ve ardından ilgili arka uç hizmetleriyle bir bağlantı kurar. ARDıNDAN API Management, WebSocket istemci-sunucu iletilerini proxy'ler.

  1. İstemci uygulaması APIM ağ geçidine bir WebSocket el sıkışma isteği gönderir ve onHandshake işlemini çağırır.
  2. APIM ağ geçidi, karşılık gelen arka uç hizmetine WebSocket el sıkışma isteği gönderir.
  3. Arka uç hizmeti, WebSocket'e bir bağlantı yükselter.
  4. APIM ağ geçidi, ilgili Bağlantıyı WebSocket'e yükselter.
  5. Bağlantı çifti oluşturulduktan sonra APIM, istemci uygulaması ve arka uç hizmeti arasında iletilerin aracısını oluşturur.
  6. İstemci uygulaması APIM ağ geçidine ileti gönderir.
  7. APIM ağ geçidi iletiyi arka uç hizmetine iletir.
  8. Arka uç hizmeti APIM ağ geçidine bir ileti gönderir.
  9. APIM ağ geçidi iletiyi istemci uygulamasına iletir.
  10. İki taraf da kesildiğinde APIM ilgili bağlantıyı sonlandırır.

Not

İstemci tarafı ve arka uç tarafı bağlantıları bire bir eşlemeden oluşur.

onHandshake işlemi

WebSocket protokolüne göre, bir istemci uygulaması arka uç hizmetiyle WebSocket bağlantısı kurmaya çalıştığında, önce bir açma el sıkışma isteği gönderir. API Management'taki her WebSocket API'sinde bir onHandshake işlemi vardır. onHandshake sabit, taşınamaz, otomatik olarak oluşturulan bir sistem işlemidir. onHandshake işlemi, API yayımcılarının bu el sıkışma isteklerine müdahale etmelerini ve API Management ilkelerini uygulamalarını sağlar.

onHandshake ekran örneği

WebSocket API'sini ekleme

    1. Azure portalında API Management örneğine gidin.
  1. Sol menüde API'ler>+ API Ekle'yi seçin.

  2. Yeni API tanımla'nın altında WebSocket'i seçin.

  3. İletişim kutusunda Tam'ı seçin ve gerekli form alanlarını doldurun.

    Alan Veri Akışı Açıklaması
    Görünen ad WebSocket API'nizin görüntüleneceği ad.
    Veri Akışı Adı WebSocket API'sinin ham adı. Görünen adı yazarken otomatik olarak doldurulur.
    WebSocket URL'si Websocket adınızı içeren temel URL. Örneğin: ws://example.com/your-socket-name
    URL düzeni Varsayılan değeri kabul edin
    API URL'si soneki Bu API Management örneğinde bu API'yi tanımlamak için bir URL son eki ekleyin. Son ekin bu APIM örneğinde benzersiz olması gerekir.
    Ürünler Yayımlamak için WebSocket API'nizi bir ürünle ilişkilendirin.
    Ağ geçitleri WebSocket API'nizi mevcut ağ geçitleriyle ilişkilendirin.
  4. Oluştur’a tıklayın.

WebSocket API'nizi test edin

  1. WebSocket API'nize gidin.

  2. WebSocket API'nizde onHandshake işlemini seçin.

  3. Test konsoluna erişmek için Test sekmesini seçin.

  4. İsteğe bağlı olarak, WebSocket el sıkışması için gereken sorgu dizesi parametrelerini sağlayın.

    test API'si örneği

  5. Bağlan'a tıklayın.

  6. Çıkış'ta bağlantı durumunu görüntüleyin.

  7. Payload alanına değer girin.

  8. Gönder'e tıklayın.

  9. Alınan iletileri Çıkış'ta görüntüleyin.

  10. Farklı yükleri test etmek için önceki adımları yineleyin.

  11. Test tamamlandığında Bağlantıyı Kes'i seçin.

Ölçümleri ve günlükleri görüntüleme

WebSocket API'lerini izlemek için standart API Management ve Azure İzleyici özelliklerini kullanın:

  • Azure İzleyici'de API ölçümlerini görüntüleme
  • İsteğe bağlı olarak, WebSocket API işlemlerini içeren API Management ağ geçidi günlüklerini toplamak ve görüntülemek için tanılama ayarlarını etkinleştirin

Örneğin, aşağıdaki ekran görüntüsünde ApiManagementGatewayLogs tablosundaki kodla 101 en son WebSocket API yanıtları gösterilmektedir. Bu sonuçlar, isteklerin TCP'den WebSocket protokolüne başarılı bir şekilde geçişini gösterir.

WebSocket API istekleri için sorgu günlükleri

Sınırlamalar

Api Management'ta WebSocket desteğinin geçerli kısıtlamaları aşağıda verilmiştir:

  • WebSocket API'leri henüz Tüketim katmanında desteklenmemektedir.
  • WebSocket API'leri iletiler için şu geçerli arabellek türlerini destekler: Close, BinaryFragment, BinaryMessage, UTF8Fragment ve UTF8Message.
  • Şu anda, set-header ilkesi onHandshake isteklerinde üst bilgiler de dahil olmak üzere Host belirli iyi bilinen üst bilgilerin değiştirilmesini desteklememektedir.
  • WebSocket arka ucuyla TLS el sıkışması sırasında API Management, sunucu sertifikasına güvenildiğini ve konu adının konak adıyla eşleşip eşleşmediğini doğrular. HTTP API'leri ile API Management, sertifikanın güvenilir olduğunu doğrular ancak konak adı ve konu eşleşmesini doğrulamaz.

WebSocket bağlantı sınırları için bkz . API Management sınırları.

Desteklenmeyen ilkeler

Aşağıdaki ilkeler tarafından desteklenmez ve onHandshake işlemine uygulanamaz:

  • Sahte yanıt
  • Önbellekten alma
  • Önbelleğe almak için depola
  • Etki alanları arası çağrılara izin ver
  • CORS
  • JSONP
  • İstek yöntemini ayarlama
  • Gövdeyi ayarla
  • XML'yi JSON'a dönüştür
  • JSON'u XML'ye dönüştür
  • XSLT kullanarak XML'i dönüştürme
  • İçeriği doğrulama
  • Parametreleri doğrulama
  • Üst bilgileri doğrulama
  • Durum kodunu doğrulama

Not

İlkeleri daha yüksek kapsamlarda (genel veya ürün) uyguladıysanız ve ilke aracılığıyla bir WebSocket API'si tarafından devralındıysa, çalışma zamanında atlanırlar.

Sonraki adımlar