Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Kumpulan artikel ini menjelaskan cara mengautentikasi dan mengirim pesan real-time ke klien yang terhubung ke Azure SignalR Service dengan menggunakan pengikatan SignalR Service di Azure Functions. Runtime Azure Functions versi 2.x dan yang lebih tinggi mendukung pengikatan input dan output untuk SignalR Service.
| Perbuatan | Jenis |
|---|---|
| Menangani pesan dari SignalR Service | Pengikatan pemicu |
| Mengembalikan URL titik akhir layanan dan token akses | Pengikatan masukan |
| Mengirim pesan SignalR Service dan mengelola grup | Pengikatan output |
Menginstal ekstensi
Paket NuGet ekstensi yang Anda instal bergantung pada mode C# yang Anda gunakan di aplikasi fungsi Anda:
Functions dijalankan dalam proses pekerja C# yang terisolasi. Untuk mempelajari selengkapnya, lihat Panduan untuk menjalankan C# Azure Functions dalam proses pekerja yang terisolasi.
Tambahkan ekstensi ke proyek Anda dengan memasang Paket NuGet ini.
Memasang bundel
Agar dapat menggunakan ekstensi pengikatan ini di aplikasi Anda, pastikan file host.json di akar proyek Anda berisi referensi ini extensionBundle :
{
"version": "2.0",
"extensionBundle": {
"id": "Microsoft.Azure.Functions.ExtensionBundle",
"version": "[4.0.0, 5.0.0)"
}
}
Dalam contoh ini, version nilai [4.0.0, 5.0.0) menginstruksikan host Functions untuk menggunakan versi bundel yang setidaknya 4.0.0 tetapi kurang dari 5.0.0, yang mencakup semua versi potensial 4.x. Notasi ini secara efektif mempertahankan aplikasi Anda pada versi minor terbaru yang tersedia dari bundel ekstensi v4.x.
Jika memungkinkan, Anda harus menggunakan versi utama bundel ekstensi terbaru dan memungkinkan runtime untuk secara otomatis mempertahankan versi minor terbaru. Anda dapat melihat konten bundel terbaru pada halaman rilis bundel ekstensi. Untuk informasi selengkapnya, lihat Bundel ekstensi Azure Functions.
Menambahkan dependensi
Untuk menggunakan anotasi SignalR Service dalam fungsi Java, Anda perlu menambahkan dependensi ke artefak azure-functions-java-library-signalr (versi 1.0 atau lebih tinggi) ke file pom.xml Anda.
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-signalr</artifactId>
<version>1.0.0</version>
</dependency>
Koneksi
Anda dapat menggunakan identitas string koneksi atau Microsoft Entra untuk menyambungkan ke Azure SignalR Service.
String koneksi
Untuk petunjuk tentang cara mengambil string koneksi untuk Azure SignalR Service Anda, lihat String koneksi di Azure SignalR Service
String koneksi ini harus disimpan dalam pengaturan aplikasi dengan nama AzureSignalRConnectionString. Anda dapat menyesuaikan nama pengaturan aplikasi dengan connectionStringSetting properti konfigurasi pengikatan.
Koneksi berbasis identitas
Jika Anda menggunakan versi 1.7.0 atau yang lebih tinggi, alih-alih menggunakan string koneksi dengan rahasia, Anda dapat meminta aplikasi menggunakan identitas Microsoft Entra.
Pertama-tama, Anda harus memastikan identitas Microsoft Entra Anda memiliki peran Pemilik SignalR Service.
Kemudian Anda akan menentukan pengaturan dengan awalan AzureSignalRConnectionStringumum . Anda dapat menyesuaikan nama awalan dengan connectionStringSetting properti konfigurasi pengikatan.
Dalam mode ini, pengaturan menyertakan item berikut:
| Properti | Templat variabel lingkungan | Deskripsi | Wajib diisi | Contoh nilai |
|---|---|---|---|---|
| URI Layanan | AzureSignalRConnectionString__serviceUri |
URI titik akhir layanan Anda. Ketika Anda hanya mengonfigurasi "URI Layanan", ekstensi akan mencoba menggunakan jenis DefaultAzureCredential untuk mengautentikasi dengan layanan. | Ya | https://mysignalrsevice.service.signalr.net |
| Token Info Masuk | AzureSignalRConnectionString__credential |
Mendefinisikan cara token harus diperoleh untuk koneksi. Pengaturan ini harus diatur ke managedidentity jika Azure Function yang Anda sebarkan berniat menggunakan autentikasi identitas terkelola. Nilai ini hanya valid ketika identitas terkelola tersedia di lingkungan hosting. |
Tidak. | identitasterkelola |
| ID klien | AzureSignalRConnectionString__clientId |
Ketika credential diatur ke managedidentity, properti ini dapat diatur untuk menentukan identitas yang ditetapkan pengguna yang akan digunakan saat mendapatkan token. Properti menerima ID klien yang sesuai dengan identitas yang ditetapkan pengguna yang ditetapkan ke aplikasi. Tidak valid untuk menentukan ID Sumber Daya dan ID klien. Jika tidak ditentukan, identitas yang ditetapkan sistem akan digunakan. Properti ini digunakan secara berbeda dalam skenario pengembangan lokal, kapan credential tidak boleh diatur. |
Tidak. | 00000000-0000-0000-0000-000000000000 |
| ID Sumber Daya | AzureSignalRConnectionString__managedIdentityResourceId |
Ketika credential diatur ke managedidentity, properti ini dapat diatur untuk menentukan Pengidentifikasi sumber daya yang akan digunakan saat mendapatkan token. Properti menerima pengidentifikasi sumber daya yang sesuai dengan ID sumber daya identitas terkelola yang ditentukan pengguna. Tidak valid untuk menentukan ID sumber daya dan ID klien. Jika tidak ditentukan, identitas yang ditetapkan sistem akan digunakan. Properti ini digunakan secara berbeda dalam skenario pengembangan lokal, kapan credential tidak boleh diatur. |
Tidak. | /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice |
Catatan
Saat menggunakan local.settings.json file di lokal, Azure App Configuration, atau Key Vault untuk menyediakan pengaturan untuk koneksi berbasis identitas, ganti __ dengan : dalam nama pengaturan untuk memastikan nama diselesaikan dengan benar.
Contohnya,AzureSignalRConnectionString:serviceUri.
Pengaturan beberapa titik akhir
Anda juga dapat mengonfigurasi beberapa titik akhir dan menentukan pengaturan identitas per titik akhir.
Dalam hal ini, awali pengaturan Anda dengan Azure__SignalR__Endpoints__{endpointName}.
{endpointName} adalah nama arbitrer yang ditetapkan oleh Anda untuk mengaitkan grup pengaturan ke titik akhir layanan. Awalan Azure__SignalR__Endpoints__{endpointName} tidak dapat disesuaikan dengan connectionStringSetting properti.
| Properti | Templat variabel lingkungan | Deskripsi | Wajib diisi | Contoh nilai |
|---|---|---|---|---|
| URI Layanan | Azure__SignalR__Endpoints__{endpointName}__serviceUri |
URI titik akhir layanan Anda. Ketika Anda hanya mengonfigurasi "URI Layanan", ekstensi akan mencoba menggunakan jenis DefaultAzureCredential untuk mengautentikasi dengan layanan. | Ya | https://mysignalrsevice1.service.signalr.net |
| Jenis titik akhir | Azure__SignalR__Endpoints__{endpointName}__type |
Menunjukkan apakah titik akhir layanan adalah primer atau sekunder. Jika tidak ditentukan, defaultnya adalah Primary. Nilai yang valid adalah Primary dan Secondary, tidak peka huruf besar/kecil. |
Tidak. | Secondary |
| Token Info Masuk | Azure__SignalR__Endpoints__{endpointName}__credential |
Mendefinisikan cara token harus diperoleh untuk koneksi. Pengaturan ini harus diatur ke managedidentity jika Azure Function yang Anda sebarkan berniat menggunakan autentikasi identitas terkelola. Nilai ini hanya valid ketika identitas terkelola tersedia di lingkungan hosting. |
Tidak. | identitasterkelola |
| ID klien | Azure__SignalR__Endpoints__{endpointName}__clientId |
Ketika credential diatur ke managedidentity, properti ini dapat diatur untuk menentukan identitas yang ditetapkan pengguna yang akan digunakan saat mendapatkan token. Properti menerima ID klien yang sesuai dengan identitas yang ditetapkan pengguna yang ditetapkan ke aplikasi. Tidak valid untuk menentukan ID Sumber Daya dan ID klien. Jika tidak ditentukan, identitas yang ditetapkan sistem akan digunakan. Properti ini digunakan secara berbeda dalam skenario pengembangan lokal, kapan credential tidak boleh diatur. |
Tidak. | 00000000-0000-0000-0000-000000000000 |
| ID Sumber Daya | Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId |
Ketika credential diatur ke managedidentity, properti ini dapat diatur untuk menentukan Pengidentifikasi sumber daya yang akan digunakan saat mendapatkan token. Properti menerima pengidentifikasi sumber daya yang sesuai dengan ID sumber daya identitas terkelola yang ditentukan pengguna. Tidak valid untuk menentukan ID sumber daya dan ID klien. Jika tidak ditentukan, identitas yang ditetapkan sistem akan digunakan. Properti ini digunakan secara berbeda dalam skenario pengembangan lokal, kapan credential tidak boleh diatur. |
Tidak. | /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity |
Untuk informasi selengkapnya tentang beberapa titik akhir, lihat Menskalakan SignalR Service dengan beberapa instans
Untuk keamanan yang optimal, aplikasi fungsi Anda harus menggunakan identitas terkelola saat menyambungkan ke layanan Azure SignalR alih-alih menggunakan string koneksi, yang berisi kunci rahasia bersama. Untuk informasi selengkapnya, lihat Mengotorisasi permintaan ke sumber daya Azure SignalR Service dengan identitas terkelola Microsoft Entra.
Langkah berikutnya
Untuk detail tentang cara mengonfigurasi dan menggunakan SignalR Service dan Azure Functions bersama-sama, lihat pengembangan dan konfigurasi Azure Functions dengan Azure SignalR Service.