Titik akhir upstram

Fitur titik akhir upstream memungkinkan Azure SignalR Service mengirim pesan dan peristiwa koneksi ke sekumpulan titik akhir dalam mode tanpa server. Anda dapat menggunakan titik akhir upstream untuk memanggil metode hub dari klien dalam mode tanpa server untuk memberi tahu titik akhir saat koneksi klien tersambung atau terputus.

Catatan

Titik akhir upstream hanya dapat dikonfigurasi dalam mode tanpa server.

Pengaturan titik akhir upstram

Pengaturan titik akhir upstram terdiri dari daftar item yang sensitif terhadap pesanan:

  • Template URL, yang menentukan ke mana pesan dikirim.
  • Seperangkat aturan.
  • Konfigurasi autentikasi.

Saat peristiwa diaktifkan, aturan item dicentang satu per satu secara berurutan. Pesan akan dikirim ke URL titik akhir upstream item pertama yang cocok.

Pengaturan template URL

Anda dapat membuat parameter URL titik akhir upstream untuk mendukung berbagai pola. Ada tiga parameter yang telah ditentukan sebelumnya:

Parameter yang sudah ditentukan sebelumnya Deskripsi
{hub} Hub merupakan sebuah konsep Azure SignalR Service. Hub adalah unit isolasi. Cakupan pengguna dan pengiriman pesan dibatasi ke sebuah hub.
{kategory} Kategori bisa menjadi salah satu nilai berikut:
  • koneksi: Peristiwa seumur hidup sambungan. Ini menyala ketika koneksi klien tersambung atau terputus. Ini termasuk peristiwa tersambung dan terputus.
  • pesan: Menyala saat klien memanggil metode hub. Ini termasuk semua peristiwa lain, kecuali peristiwa dalam kategori koneksi .
{peristiwa} Untuk kategori pesan, peristiwa adalah target yang ada dalam pesan permohonan yang dikirim klien. Untuk kategori koneksi, hanya tersambung dan terputus yang digunakan.

Parameter yang telah ditentukan sebelumnya ini dapat digunakan dalam pola URL. Parameter akan diganti dengan nilai yang ditentukan saat Anda mengevaluasi URL titik akhir upstream. Contohnya:

http://host.com/{hub}/api/{category}/{event}

Ketika koneksi klien di hub "obrolan" tersambung, pesan akan dikirim ke URL ini:

http://host.com/chat/api/connections/connected

Ketika klien di hub "obrolan" memanggil metode hub broadcast, pesan akan dikirimkan ke URL ini:

http://host.com/chat/api/messages/broadcast

Referensi rahasia Key Vault dalam pengaturan template URL

URL titik akhir upstream tidak dienkripsi. Anda dapat mengamankan titik akhir upstream sensitif menggunakan Key Vault dan mengaksesnya dengan identitas terkelola.

Untuk mengaktifkan identitas terkelola di instans layanan SignalR Anda dan memberinya akses Key Vault:

  1. Pilih identitas yang ditetapkan sistem atau identitas yang ditetapkan pengguna. Lihat Cara menambahkan identitas terkelola di portal Azure.

  2. Berikan izin baca rahasia untuk identitas terkelola dalam kebijakan Akses dalam Key Vault. Lihat Menetapkan kebijakan akses Key Vault menggunakan portal Azure

  3. Ganti teks sensitif Anda dengan sintaks di bawah ini dalam Pola URL titik akhir upstream:

    {@Microsoft.KeyVault(SecretUri=<secret-identity>)}
    

    <secret-identity> adalah URI bidang data lengkap dari rahasia di Key Vault, secara opsional termasuk versi, misalnya, https://myvault.vault.azure.net/secrets/mysecret/ atau https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931

    Misalnya, referensi lengkap akan terlihat seperti berikut ini:

    {@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
    

    URL titik akhir upstream ke Azure Function akan terlihat seperti berikut ini:

    https://contoso.azurewebsites.net/runtime/webhooks/signalr?code={@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
    

Catatan

Setiap 30 menit, atau setiap kali pengaturan titik akhir hulu atau perubahan identitas terkelola, layanan akan dibaca ulang konten rahasia. Anda dapat segera memicu pembaruan dengan mengubah pengaturan titik akhir upstream.

Pengaturan aturan

Anda dapat mengatur aturan hub, aturan kategori, dan aturan peristiwa secara terpisah. Aturan pencocokan mendukung tiga format:

  • Gunakan tanda bintang (*) untuk mencocokkan peristiwa apa pun.
  • Gunakan koma (,) untuk menggabungkan beberapa peristiwa. Misalnya, connected, disconnected mencocokkan peristiwa yang tersambung dan terputus.
  • Gunakan nama acara lengkap untuk mencocokkan peristiwa. Misalnya, connected mencocokkan peristiwa yang tersambung.

Catatan

Jika Anda menggunakan Azure Functions dengan pemicu SignalR, pemicu SignalR akan mengekspos satu titik akhir dalam format berikut: <Function_App_URL>/runtime/webhooks/signalr?code=<API_KEY>. Anda dapat mengonfigurasi pengaturan template URL ke url ini dan mempertahankan pengaturan aturan ke default. Lihat integrasi SignalR Service untuk rincian tentang cara menemukan <Function_App_URL> dan <API_KEY>.

Pengaturan autentikasi

Anda dapat mengonfigurasi autentikasi untuk setiap pengaturan titik akhir upstram secara terpisah. Saat Anda mengonfigurasi autentikasi, token diatur dalam Authentication header pesan upstream. Saat ini, Azure SignalR Service mendukung jenis autentikasi berikut:

  • None
  • ManagedIdentity

Saat Anda memilih ManagedIdentity, Anda harus terlebih dahulu mengaktifkan identitas terkelola di Azure SignalR Service dan secara opsional, tentukan sumber daya. Lihat Identitas terkelola untuk Azure SignalR Service untuk detailnya.

Mengonfigurasi pengaturan titik akhir upstram melalui portal Azure

Catatan

Integrasi dengan Lingkungan App Service saat ini tidak didukung.

  1. Buka Azure SignalR Service.
  2. Pilih Pengaturan.
  3. Alihkan Mode Layanan ke Tanpa Server.
  4. Tambahkan URL di bawah Pola URL Upstream. Screenshot of AzureSignalR Service Upstream settings.
  5. Pilih Aturan Hub untuk membuka Pengaturan Upstream. Screenshot of Azure SignalR Upstream setting details.
  6. Ubah Aturan Hub, Aturan Peristiwa, dan Aturan Kategori dengan memasukkan nilai aturan di bidang terkait.
  7. Di bawah Autentikasi Upstream pilih
  8. Gunakan Identitas Terkelola. (Pastikan Anda telah mengaktifkan identitas terkelola)
  9. Pilih opsi apa pun di bawah Audiens dalam token yang dikeluarkan. Lihat Identitas terkelola untuk Azure SignalR Service untuk detailnya.

Mengonfigurasi pengaturan titik akhir upstream melalui templat Resource Manager

Untuk mengonfigurasi pengaturan titik akhir upstream dengan menggunakan templat Azure Resource Manager, atur upstream properti di properties properti . Cuplikan berikut menunjukkan cara mengatur upstream properti untuk membuat dan memperbarui pengaturan titik akhir upstream.

{
  "properties": {
    "upstream": {
      "templates": [
        {
          "UrlTemplate": "http://host.com/{hub}/api/{category}/{event}",
          "EventPattern": "*",
          "HubPattern": "*",
          "CategoryPattern": "*",
          "Auth": {
            "Type": "ManagedIdentity",
            "ManagedIdentity": {
              "Resource": "<resource>"
            }
          }
        }
      ]
    }
  }
}

Protokol tanpa server

Azure SignalR Service mengirim pesan ke titik akhir yang mengikuti protokol berikut. Anda dapat menggunakan pengikatan pemicu SignalR Service dengan Aplikasi Fungsi, yang menangani protokol ini untuk Anda.

Metode

POST

Header permintaan

Nama Deskripsi
X-ASRS-Connection-Id ID sambungan untuk sambungan klien.
X-ASRS-Hub Hub tempat koneksi klien berada.
X-ASRS-Category Kategori tempat pesan berada.
X-ASRS-Event Peristiwa di mana pesan tersebut berada.
X-ASRS-Signature Kode autentikasi pesan berbasis hash (HMAC) yang digunakan untuk validasi. Lihat Tanda tangan untuk detailnya.
X-ASRS-User-Claims Sekelompok klaim dari sambungan klien.
X-ASRS-User-Id Identitas pengguna klien yang mengirim pesan.
X-ASRS-Client-Query Kueri permintaan saat klien tersambung ke layanan.
Autentikasi Token opsional saat Anda menggunakan ManagedIdentity.

Isi permintaan

Tersambung

Jenis-Konten: application/json

Terputus

Jenis-Konten: application/json

Nama Tipe Deskripsi
Kesalahan string Pesan kesalahan dari sambungan tertutup. Kosong ketika sambungan ditutup tanpa terjadi kesalahan.

Pesan permohonan

Jenis-Konten: application/json atau application/x-msgpack

Nama Tipe Deskripsi
IDPermohonan string Untai (karakter) opsional yang mewakili pesan permohonan. Temukan detailnya dalam Permohonan.
Target string Sama seperti peristiwa dan sama dengan target dalam pesan permohonan.
Argumen Array objek Array yang berisi argumen untuk diterapkan ke metode yang dimaksud dalam Target.

Tanda Tangan

Layanan ini akan menghitung kode SHA256 untuk X-ASRS-Connection-Id nilai tersebut dengan menggunakan kunci akses utama dan kunci akses sekunder sebagai kunci HMAC. Layanan akan mengaturnya di X-ASRS-Signature header saat membuat permintaan HTTP ke titik akhir upstream:

Hex_encoded(HMAC_SHA256(accessKey, connection-id))

Langkah berikutnya