Mengimpor API WebSocket
BERLAKU UNTUK: Pengembang | Dasar | Dasar v2 | Standar | Standar v2 | Premium | Premium v2
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.
Catatan
Saat ini, fitur ini tidak tersedia di ruang kerja.
API WebSocket dapat diamankan dengan menerapkan kebijakan kontrol akses API Management ke operasi jabat tangan awal. 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:
- Memahami alur 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
- Instans API Management yang ada. Buat jika Anda belum melakukannya.
- API WebSocket.
- Azure CLI
Passthrough WebSocket
API Management mendukung passthrough WebSocket.
Selama passthrough WebSocket, aplikasi klien membuat koneksi WebSocket dengan gateway API Management, yang kemudian membuat koneksi dengan layanan backend yang sesuai. API Management kemudian mem-proksi pesan server klien WebSocket.
- Aplikasi klien mengirimkan permintaan jabat tangan WebSocket ke gateway, memanggil operasi onHandshake
- Gateway API Management menerapkan kebijakan yang dikonfigurasi dan mengirim permintaan jabat tangan WebSocket ke layanan backend yang sesuai.
- Layanan backend memutakhirkan koneksi ke WebSocket.
- Gateway memutakhirkan koneksi yang sesuai ke WebSocket.
- Setelah pasangan koneksi dibuat, API Management melakukan pesan bolak-balik antara aplikasi klien dan layanan backend.
- Aplikasi klien mengirim pesan ke gateway.
- Gateway meneruskan pesan ke layanan backend.
- Layanan backend mengirim pesan ke gateway.
- Gateway meneruskan pesan ke aplikasi klien.
- Ketika salah satu sisi terputus, API Management mengakhiri koneksi yang sesuai.
Catatan
Koneksi sisi klien dan sisi backend terdiri dari pemetaan satu-ke-satu.
operasi onHandshake
Sesuai protokol WebSocket, ketika aplikasi klien mencoba membuat koneksi WebSocket dengan layanan backend, pertama-tama mengirim permintaan jabat tangan pembuka. 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.
Tambahkan API WebSocket
-
- Di Portal Microsoft Azure, navigasikan ke instans API Management Anda.
Di menu sebelah kiri, pilih API>+ Tambahkan API.
Di bawah Tentukan API baru, pilih WebSocket.
Dalam kotak dialog, pilih Penuh dan lengkapi bidang formulir yang diperlukan.
Bidang Deskripsi Nama tampilan Nama tempat API WebSocket Anda 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. Akhiran harus unik dalam instans API Management ini. Produk Kaitkan API WebSocket Anda dengan produk untuk mempublikasikannya. Gateway Kaitkan API WebSocket Anda dengan gateway yang ada. Klik Buat.
Menguji WebSocket API
Buka WebSocket API.
Dalam WebSocket API, pilih operasi onHandshake.
Pilih tab Uji untuk mengakses konsol Uji.
Secara opsional, berikan parameter string kueri yang diperlukan untuk handshake WebSocket.
Klik Sambungkan.
Lihat status koneksi di Output.
Masukkan nilai di Payload.
Klik Kirim.
Lihat pesan yang diterima di Output.
Ulangi langkah-langkah sebelumnya untuk menguji payload yang berbeda.
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.
Batasan
Berikut ini adalah pembatasan dukungan WebSocket saat ini di API Management:
- API WebSocket belum didukung di 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 tidak didukung oleh dan tidak dapat diterapkan ke 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 (misalnya, global atau produk) dan kebijakan tersebut diwarisi oleh API WebSocket melalui kebijakan, kebijakan tersebut dilewati pada runtime.
Topik terkait
- Batasan impor API
- Mengimpor spesifikasi OpenAPI
- Mengimpor API SOAP
- Mengimpor SOAP API dan mengonversi ke REST
- Impor API App Service
- Impor API Aplikasi Kontainer
- Mengimpor API WebSocket
- Mengimpor API GraphQL
- Mengimpor skema GraphQL dan menyiapkan penyelesai bidang
- Impor Aplikasi Fungsi Azure
- Impor Azure Logic App
- Impor layanan Service Fabric
- Mengimpor API Azure OpenAI
- Mengimpor API OData
- Mengimpor metadata SAP OData
- Mengimpor API gRPC
- Edit API