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

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>

Untuk informasi selengkapnya tentang bekerja dengan kebijakan, lihat: