Untuk menggunakan backend kustom, referensikan menggunakan kebijakan set-backend-service
. Kebijakan ini mengubah URL dasar layanan backend default dari permintaan API yang masuk ke backend yang ditentukan, dalam hal ini backend Service Fabric.
Kebijakan set-backend-service
dapat berguna dengan API yang ada untuk mengubah permintaan masuk ke backend yang berbeda dari yang ditentukan di pengaturan API. Untuk tujuan demonstrasi dalam artikel ini, buat API pengujian dan tetapkan kebijakan untuk mengarahkan permintaan API ke backend Service Fabric.
Buat API
Ikuti langkah-langkah dalam Menambahkan API secara manual untuk membuat API kosong.
Di pengaturan API, biarkan URL layanan Web kosong.
Tambahkan akhiran URL API, seperti fabric.
Menambahkan operasi GET ke API
Seperti yang ditunjukkan dalam Menyebarkan layanan back-end Service Fabric, sampel ASP.NET Core yang diterapkan pada kluster Service Fabric mendukung satu operasi HTTP GET pada jalur URL /api/values
.
Respons default pada jalur tersebut adalah array JSON dari dua string:
["value1", "value2"]
Untuk menguji integrasi API Management dengan kluster, tambahkan operasi GET yang sesuai ke API pada jalur /api/values
:
Memilih API yang Anda buat di langkah sebelumnya.
Pilih + Tambahkan Operasi.
Di jendela Frontend, masukkan nilai berikut ini, dan pilih Simpan.
Pengaturan |
Nilai |
Nama tampilan |
Uji backend |
URL |
GET |
URL |
/api/values |
Tambahkan kebijakan set-backend-service
ke API pengujian.
Di tab Desain, di bagian Pemrosesan masuk, pilih ikon editor kode (</>).
Tempatkan kursor di dalam elemen <masuk>
Tambahkan pernyataan kebijakan set-service-backend
.
Dalambackend-id
, ganti nama backend Service Fabric Anda.
sf-resolve-condition
adalah kondisi untuk menyelesaikan kembali lokasi layanan dan mengirim ulang permintaan. Jumlah percobaan ulang yang ditetapkan ketika mengonfigurasi backend. Contohnya:
<set-backend-service backend-id="mysfbackend" sf-resolve-condition="@(context.LastError?.Reason == "BackendConnectionFailure")"/>
Pilih Simpan.
Catatan
Jika satu atau beberapa simpul di kluster Service Fabric tidak berfungsi atau dihapus, API Management tidak mendapatkan pemberitahuan otomatis dan terus mengirim lalu lintas ke simpul ini. Untuk menangani kasus ini, konfigurasikan kondisi penyelesaian yang mirip dengan: sf-resolve-condition="@((int)context.Response.StatusCode != 200 || context.LastError?.Reason == "BackendConnectionFailure" || context.LastError?.Reason == "Timeout")"
Uji API backend