Mengatur layanan ujung belakang
BERLAKU UNTUK: Semua tingkatAN API Management
Gunakan kebijakan set-backend-service
untuk mengalihkan permintaan masuk ke backend yang berbeda dari yang ditentukan dalam pengaturan API untuk operasi tersebut. Kebijakan ini mengubah URL dasar layanan backend dari permintaan masuk ke URL atau backend yang ditentukan dalam kebijakan.
Mereferensikan entitas backend memungkinkan Anda mengelola URL dasar layanan backend dan pengaturan lain di satu tempat dan menggunakannya kembali di beberapa API dan operasi. Terapkan juga penyeimbangan beban lalu lintas di kumpulan layanan backend dan aturan pemutus arus untuk melindungi backend dari terlalu banyak permintaan.
Catatan
Entitas backend dapat dikelola melalui portal Microsoft Azure, API manajemen,dan PowerShell.
Catatan
Tetapkan elemen kebijakan dan elemen turunan dalam urutan yang disediakan dalam pernyataan kebijakan. Pelajari lebih lanjut cara mengatur atau mengedit kebijakan API Management.
Pernyataan kebijakan
<set-backend-service base-url="base URL of the backend service" backend-id="name of the backend entity specifying base URL of the backend service" sf-resolve-condition="condition" sf-service-instance-name="Service Fabric service name" sf-listener-name="Service Fabric listener name" />
Atribut
Atribut | Deskripsi | Wajib diisi | Default |
---|---|---|---|
base-url | URL dasar layanan backend baru. Ekspresi kebijakan diizinkan. | Satu dari base-url atau backend-id harus diberikan. |
T/A |
backend-id | Pengidentifikasi (nama) backend untuk merutekan replika utama atau sekunder partisi. Ekspresi kebijakan diizinkan. | Satu dari base-url atau backend-id harus diberikan. |
T/A |
sf-resolve-condition | Hanya berlaku ketika backend adalah layanan Service Fabric. Kondisi yang mengidentifikasi jika panggilan ke backend Service Fabric harus diulang dengan resolusi baru. Ekspresi kebijakan diizinkan. | No | T/A |
sf-service-instance-name | Hanya berlaku ketika backend adalah layanan Service Fabric. Memungkinkan perubahan instans layanan saat runtime bahasa umum. Ekspresi kebijakan diizinkan. | No | T/A |
sf-partition-key | Hanya berlaku ketika backend adalah layanan Service Fabric. Menentukan kunci partisi layanan Service Fabric. Ekspresi kebijakan diizinkan. | No | T/A |
sf-listener-name | Hanya berlaku ketika backend adalah layanan Service Fabric dan ditentukan menggunakan backend-id . Service Fabric Reliable Service memungkinkan Anda untuk membuat beberapa pendengar dalam layanan. Atribut ini digunakan untuk memilih pendengar tertentu ketika backend Reliable Service memiliki lebih dari satu pendengar. Jika atribut ini tidak ditentukan, API Management akan mencoba menggunakan pendengar tanpa nama. Pendengar tanpa nama adalah tipikal untuk Reliable Service yang hanya memiliki satu pendengar. Ekspresi kebijakan diizinkan. |
No | T/A |
Penggunaan
- Bagian kebijakan: masuk, backend
- Cakupan kebijakan: global, ruang kerja, produk, API, operasi
- Gateway: klasik, v2, konsumsi, dihost sendiri, ruang kerja
Catatan penggunaan
Saat ini, jika Anda menentukan kebijakan dasar set-backend-service
menggunakan backend-id
atribut dan mewarisi kebijakan dasar menggunakan <base />
dalam cakupan, kebijakan tersebut hanya dapat ditimpa dengan kebijakan menggunakan backend-id
atribut , bukan base-url
atribut .
Contoh
Permintaan rute berdasarkan nilai dalam string kueri
Dalam contoh ini kebijakan merutekan set-backend-service
permintaan berdasarkan nilai versi yang diteruskan dalam string kueri ke layanan backend yang berbeda dari yang ditentukan dalam API.
<policies>
<inbound>
<choose>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2013-05")">
<set-backend-service base-url="http://contoso.com/api/8.2/" />
</when>
<when condition="@(context.Request.Url.Query.GetValueOrDefault("version") == "2014-03")">
<set-backend-service base-url="http://contoso.com/api/9.1/" />
</when>
</choose>
<base />
</inbound>
<outbound>
<base />
</outbound>
</policies>
Awalnya, URL dasar layanan backend berasal dari pengaturan API. Jadi URL permintaan https://contoso.azure-api.net/api/partners/15?version=2013-05&subscription-key=abcdef
menjadi http://contoso.com/api/10.4/partners/15?version=2013-05&subscription-key=abcdef
di mana http://contoso.com/api/10.4/
adalah URL layanan backend yang ditentukan dalam pengaturan API.
Saat pernyataan kebijakan <choose> diterapkan, URL dasar layanan backend dapat berubah lagi ke http://contoso.com/api/8.2
atau http://contoso.com/api/9.1
, bergantung pada nilai parameter kueri permintaan versi. Misalnya, jika nilainya adalah "2013-15"
, URL permintaan akhir menjadi http://contoso.com/api/8.2/partners/15?version=2013-15&subscription-key=abcdef
.
Jika transformasi permintaan lebih lanjut diinginkan, Kebijakan transformasi lainnya dapat digunakan. Misalnya, untuk menghapus parameter kueri versi sekarang setelah permintaan dirutekan ke backend dengan versi tertentu, kebijakan Atur parameter string kueri dapat digunakan untuk menghapus atribut versi yang sekarang berlebihan.
Merutekan permintaan ke backend service fabric
Dalam contoh ini, kebijakan merutekan permintaan ke backend struktur layanan, menggunakan string kueri userId sebagai kunci partisi dan menggunakan replika utama partisi.
<policies>
<inbound>
<set-backend-service backend-id="my-sf-service" sf-partition-key="@(context.Request.Url.Query.GetValueOrDefault("userId","")" sf-replica-type="primary" />
</inbound>
<outbound>
<base />
</outbound>
</policies>
Kebijakan terkait
Konten terkait
Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat:
- Tutorial: Mengubah dan melindungi API Anda
- Referensi Kebijakan untuk daftar lengkap pernyataan kebijakan dan pengaturannya
- Ekspresi kebijakan
- Mengatur atau mengedit kebijakan
- Menggunakan kembali konfigurasi kebijakan
- Repositori cuplikan kebijakan
- Toolkit kebijakan Azure API Management
- Kebijakan penulis menggunakan Microsoft Copilot di Azure