Mengimpor API WebSocket

BERLAKU UNTUK: Pengembang | Dasar | Dasar v2 | Standar | Standar v2 | Premium

Dengan solusi API WebSocket API Management, penerbit API dapat dengan cepat menambahkan API WebSocket di API Management melalui portal Azure, Azure CLI, Azure PowerShell, dan alat Azure lainnya.

Anda dapat mengamankan API WebSocket dengan menerapkan kebijakan kontrol akses yang ada, seperti validasi JWT. Anda juga dapat menguji API WebSocket menggunakan konsol uji API di portal Microsoft Azure dan portal pengembang. Dibangun berdasarkan kemampuan pengamatan yang ada, API Management menyediakan metrik dan log untuk memantau dan memecahkan masalah API WebSocket.

Dalam artikel ini, Anda akan:

  • Pahami aliran passthrough Websocket.
  • Menambahkan API WebSocket ke instans API Management Anda.
  • Uji WebSocket API.
  • Lihat metrik dan log untuk WebSocket API.
  • Mempelajari batasan API WebSocket.

Prasyarat

Passthrough WebSocket

API Management mendukung passthrough WebSocket.

Ilustrasi visual aliran passthrough WebSocket

Selama passthrough WebSocket, aplikasi klien membuat koneksi WebSocket dengan API Management Gateway, yang kemudian membangun koneksi dengan layanan backend yang sesuai. API Management kemudian mem-proksi pesan server klien WebSocket.

  1. Aplikasi klien mengirimkan permintaan jabat tangan WebSocket ke gateway APIM, memanggil operasi onHandshake.
  2. Gateway APIM mengirimkan permintaan jabat tangan WebSocket ke layanan backend yang sesuai.
  3. Layanan backend memutakhirkan koneksi ke WebSocket.
  4. Gateway APIM meningkatkan koneksi yang sesuai ke WebSocket.
  5. Setelah pasangan koneksi dibuat, APIM akan broker pesan bolak-balik antara aplikasi klien dan layanan backend.
  6. Aplikasi klien mengirim pesan ke gateway APIM.
  7. Gateway APIM meneruskan pesan ke layanan backend.
  8. Layanan backend mengirim pesan ke gateway APIM.
  9. Gateway APIM meneruskan pesan ke aplikasi klien.
  10. Ketika salah satu sisi terputus, APIM menghentikan koneksi yang sesuai.

Catatan

Koneksi sisi klien dan sisi backend terdiri dari pemetaan satu-ke-satu.

operasi onHandshake

Per protokol WebSocket, ketika aplikasi klien mencoba untuk membuat koneksi WebSocket dengan layanan backend, pertama-tama akan mengirim permintaan jabat tangan pembukaan. Setiap Api WebSocket di API Management memiliki operasi onHandshake. onHandshake adalah operasi sistem yang tidak dapat diubah, tidak dapat dilepas, dan dibuat secara otomatis. Operasi onHandshake memungkinkan penerbit API untuk mencegat permintaan jabat tangan ini dan menerapkan kebijakan API Management kepada mereka.

contoh layar onHandshake

Tambahkan API WebSocket

    1. Di Portal Microsoft Azure, navigasikan ke instans API Management Anda.
  1. Di menu sebelah kiri, pilih API>+ Tambahkan API.

  2. Di bawah Tentukan API baru, pilih WebSocket.

  3. Dalam kotak dialog, pilih Penuh dan lengkapi bidang formulir yang diperlukan.

    Bidang Deskripsi
    Nama tampilan Nama API WebSocket Anda akan ditampilkan.
    Nama Nama mentah API WebSocket. Otomatis terisi saat Anda mengetik nama tampilan.
    URL WebSocket URL dasar dengan nama websocket Anda. Misalnya: ws://example.com/your-socket-name
    Skema URL Menerima default
    Akhiran URL API Tambahkan sufiks URL untuk mengidentifikasi API spesifik ini dalam instans API Management ini. Nama akhiran harus unik dalam instans APIM ini.
    Produk Kaitkan API WebSocket Anda dengan produk untuk mempublikasikannya.
    Gateway Kaitkan API WebSocket Anda dengan gateway yang ada.
  4. Klik Buat.

Menguji WebSocket API

  1. Buka WebSocket API.

  2. Dalam WebSocket API, pilih operasi onHandshake.

  3. Pilih tab Uji untuk mengakses konsol Uji.

  4. Secara opsional, berikan parameter string kueri yang diperlukan untuk handshake WebSocket.

    uji contoh API

  5. Klik Sambungkan.

  6. Lihat status koneksi di Output.

  7. Masukkan nilai di Payload.

  8. Klik Kirim.

  9. Lihat pesan yang diterima di Output.

  10. Ulangi langkah-langkah sebelumnya untuk menguji payload yang berbeda.

  11. Setelah pengujian selesai, pilih Putuskan koneksi.

Menampilkan metrik dan log

Gunakan fitur API Management dan Azure Monitor standar untuk memantau WebSocket API:

  • Lihat metrik API di Azure Monitor
  • Atau, aktifkan pengaturan diagnostik untuk mengumpulkan dan melihat log gateway API Management, yang mencakup operasi WebSocket API

Misalnya, cuplikan layar berikut menunjukkan respons API WebSocket terbaru dengan kode 101 dari tabel ApiManagementGatewayLogs. Hasil ini menunjukkan keberhasilan peralihan permintaan dari TCP ke protokol WebSocket.

Log kueri untuk permintaan WebSocket API

Batasan

Berikut adalah pembatasan dukungan WebSocket saat ini di API Management:

  • API WebSocket tidak didukung pada tingkat Konsumsi.
  • API WebSocket mendukung jenis buffer yang valid berikut untuk pesan: Close, BinaryFragment, BinaryMessage, UTF8Fragment, dan UTF8Message.
  • Saat ini, kebijakan set-header tidak mendukung perubahan header terkenal tertentu, termasuk header Host, dalam permintaan onHandshake.
  • Selama handshake TLS dengan backend WebSocket, API Management memvalidasi bahwa sertifikat server tepercaya dan nama subjeknya cocok dengan nama host. Dengan API HTTP, API Management memvalidasi bahwa sertifikat tepercaya tetapi tidak memvalidasi kecocokan antara nama host dan subjek tersebut.

Untuk batas koneksi WebSocket, lihat Batas API Management.

Kebijakan yang tidak didukung

Kebijakan berikut ini tidak didukung oleh dan tidak dapat diterapkan pada operasi onHandshake:

  • Respons mock
  • Dapatkan dari cache
  • Simpan ke cache
  • Perbolehkan panggilan lintas domain
  • CORS
  • JSONP
  • Atur metode permintaan
  • Mengatur isi
  • Mengonversi XML ke JSON
  • Mengonversi JSON ke XML
  • Mengubah XML menggunakan XSLT
  • Memvalidasi konten
  • Validasi parameter
  • Validasi header
  • Memvalidasi kode status

Catatan

Jika Anda menerapkan kebijakan pada cakupan yang lebih tinggi (yaitu global atau produk) dan kebijakan tersebut diwariskan oleh API WebSocket melalui kebijakan, kebijakan tersebut akan dilewati pada waktu proses.

Langkah berikutnya