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.
Azure Event Grid adalah layanan perutean peristiwa terkelola penuh yang menyediakan konsumsi peristiwa seragam menggunakan model pub-sub. Dalam panduan ini, Anda menggunakan Azure CLI untuk membuat Azure SignalR Service, berlangganan peristiwa koneksi, lalu menyebarkan sampel aplikasi web untuk menerima peristiwa. Terakhir, Anda dapat menghubungkan dan memutuskan sambungan dan melihat payload peristiwa di aplikasi sampel.
Jika Anda tidak memiliki akun Azure, buat akun gratis sebelum memulai.
Prasyarat
Gunakan lingkungan Bash di Azure Cloud Shell. Untuk informasi selengkapnya, lihat Mulai menggunakan Azure Cloud Shell.
Jika Anda lebih suka menjalankan perintah referensi CLI secara lokal, instal Azure CLI. Jika Anda menjalankan Windows atau macOS, pertimbangkan untuk menjalankan Azure CLI dalam kontainer Docker. Untuk informasi lebih lanjut, lihat Cara menjalankan Azure CLI di kontainer Docker.
Jika Anda menggunakan instalasi lokal, masuk ke Azure CLI dengan menggunakan perintah login az. Untuk menyelesaikan proses autentikasi, ikuti langkah-langkah yang ditampilkan di terminal Anda. Untuk opsi masuk lainnya, lihat Mengautentikasi ke Azure menggunakan Azure CLI.
Saat Anda diminta, instal ekstensi Azure CLI pada penggunaan pertama. Untuk informasi selengkapnya tentang ekstensi, lihat Menggunakan dan mengelola ekstensi dengan Azure CLI.
Jalankan versi az untuk menemukan versi dan pustaka dependen yang diinstal. Untuk meningkatkan ke versi terbaru, jalankan peningkatan az.
- Perintah Azure CLI dalam artikel ini diformat untuk shell Bash. Jika Anda menggunakan shell yang berbeda seperti PowerShell atau Command Prompt, Anda mungkin perlu menyesuaikan karakter kelanjutan baris atau baris penugasan variabel yang sesuai. Artikel ini menggunakan variabel untuk meminimalkan jumlah pengeditan perintah yang diperlukan.
Penting
String koneksi mentah muncul dalam artikel ini hanya untuk tujuan demonstrasi.
string koneksi menyertakan informasi otorisasi yang diperlukan aplikasi Anda untuk mengakses Azure SignalR Service. Kunci akses di dalam string koneksi mirip dengan kata sandi root untuk layanan Anda. Di lingkungan produksi, selalu lindungi kunci akses Anda. Gunakan Azure Key Vault untuk mengelola dan memutar kunci Anda dengan aman dan mengamankan string koneksi Anda menggunakan ID Microsoft Entra dan mengotorisasi akses dengan ID Microsoft Entra.
Hindari mendistribusikan kunci akses ke pengguna lain, melakukan hard-coding, atau menyimpannya di mana saja dalam teks biasa yang dapat diakses orang lain. Putar kunci Anda jika Anda yakin bahwa kunci tersebut mungkin telah disusupi.
Buat grup sumber daya
Grup sumber daya Azure adalah kontainer logis tempat Anda menyebarkan dan mengelola sumber daya Azure Anda. Perintah az group create membuat grup sumber daya bernama myResourceGroup di wilayah eastus . Jika Anda ingin menggunakan nama yang berbeda untuk grup sumber daya Anda, setel RESOURCE_GROUP_NAME ke nilai yang berbeda.
RESOURCE_GROUP_NAME=myResourceGroup
az group create --name $RESOURCE_GROUP_NAME --location eastus
Membuat SignalR Service
Selanjutnya, sebarkan Azure Signals Service ke dalam grup sumber daya dengan perintah berikut.
SIGNALR_NAME=SignalRTestSvc
az signalr create --resource-group $RESOURCE_GROUP_NAME --name $SIGNALR_NAME --sku Free_F1
Setelah SignalR Service dibuat, Azure CLI mengembalikan output yang mirip dengan contoh berikut:
{
"externalIp": "13.76.156.152",
"hostName": "clitest.servicedev.signalr.net",
"hostNamePrefix": "clitest",
"id": "/subscriptions/28cf13e2-c598-4aa9-b8c8-098441f0827a/resourceGroups/clitest1/providers/Microsoft.SignalRService/SignalR/clitest",
"location": "southeastasia",
"name": "clitest",
"provisioningState": "Succeeded",
"publicPort": 443,
"resourceGroup": "clitest1",
"serverPort": 443,
"sku": {
"capacity": 1,
"family": null,
"name": "Free_F1",
"size": "F1",
"tier": "Free"
},
"tags": null,
"type": "Microsoft.SignalRService/SignalR",
"version": "1.0"
}
Membuat titik akhir peristiwa
Di bagian ini, Anda menggunakan templat Resource Manager yang terletak di repositori GitHub untuk menyebarkan aplikasi web sampel bawaan ke Azure App Service. Kemudian, Anda berlangganan peristiwa Event Grid registri Anda dan menentukan aplikasi ini sebagai titik akhir tempat peristiwa tersebut dikirim.
Untuk menyebarkan aplikasi sampel, atur SITE_NAME ke nama unik untuk aplikasi web Anda, dan jalankan perintah berikut. Nama situs harus unik dalam Azure karena membentuk sebagian dari nama domain yang sepenuhnya memenuhi syarat (FQDN) dari aplikasi web. Di bagian selanjutnya, Anda menavigasi ke FQDN aplikasi di browser web untuk melihat peristiwa registri Anda.
SITE_NAME=<your-site-name>
az deployment group create \
--resource-group $RESOURCE_GROUP_NAME \
--template-uri "https://raw.githubusercontent.com/Azure-Samples/azure-event-grid-viewer/master/azuredeploy.json" \
--parameters siteName=$SITE_NAME hostingPlanName=$SITE_NAME-plan
Setelah penyebaran berhasil (mungkin perlu beberapa menit), buka browser Anda, lalu buka aplikasi web Anda untuk memastikannya berjalan:
http://<your-site-name>.azurewebsites.net
Aktifkan penyedia sumber daya Event Grid
Jika ini pertama kalinya Anda menggunakan Event Grid di langganan Azure, Anda mungkin perlu mendaftarkan penyedia sumber daya Event Grid. Jalankan perintah berikut untuk mendaftarkan penyedia:
az provider register --namespace Microsoft.EventGridMungkin perlu beberapa saat agar pendaftaran selesai. Untuk memeriksa status, jalankan perintah berikut:
az provider show --namespace Microsoft.EventGrid --query "registrationState"Saat
registrationStateadalahRegistered, Anda siap untuk melanjutkan.
Berlangganan acara registri
Di Event Grid, Anda berlangganan topik untuk menentukan peristiwa yang ingin Anda lacak, dan tempat untuk mengirim peristiwa. Perintah az eventgrid event-subscription create berlangganan Azure SignalR Service yang Anda buat dan menentukan URL aplikasi web Anda sebagai titik akhir tempatnya harus mengirim peristiwa. Variabel lingkungan yang Anda isi di bagian sebelumnya digunakan kembali di sini, jadi tidak diperlukan pengeditan.
SIGNALR_SERVICE_ID=$(az signalr show --resource-group $RESOURCE_GROUP_NAME --name $SIGNALR_NAME --query id --output tsv)
APP_ENDPOINT=https://$SITE_NAME.azurewebsites.net/api/updates
az eventgrid event-subscription create \
--name event-sub-signalr \
--source-resource-id $SIGNALR_SERVICE_ID \
--endpoint $APP_ENDPOINT
Saat langganan selesai, Anda akan melihat output yang mirip dengan contoh berikut:
{
"deadLetterDestination": null,
"destination": {
"endpointBaseUrl": "https://$SITE_NAME.azurewebsites.net/api/updates",
"endpointType": "WebHook",
"endpointUrl": null
},
"filter": {
"includedEventTypes": [
"Microsoft.SignalRService.ClientConnectionConnected",
"Microsoft.SignalRService.ClientConnectionDisconnected"
],
"isSubjectCaseSensitive": null,
"subjectBeginsWith": "",
"subjectEndsWith": ""
},
"id": "/subscriptions/28cf13e2-c598-4aa9-b8c8-098441f0827a/resourceGroups/myResourceGroup/providers/Microsoft.SignalRService/SignalR/SignalRTestSvc/providers/Microsoft.EventGrid/eventSubscriptions/event-sub-signalr",
"labels": null,
"name": "event-sub-signalr",
"provisioningState": "Succeeded",
"resourceGroup": "myResourceGroup",
"retryPolicy": {
"eventTimeToLiveInMinutes": 1440,
"maxDeliveryAttempts": 30
},
"topic": "/subscriptions/28cf13e2-c598-4aa9-b8c8-098441f0827a/resourceGroups/myResourceGroup/providers/microsoft.signalrservice/signalr/SignalRTestSvc",
"type": "Microsoft.EventGrid/eventSubscriptions"
}
Picu peristiwa registri
Beralih ke mode layanan ke Serverless Mode dan siapkan koneksi klien ke SignalR Service. Anda dapat mengambil Sampel Tanpa Server sebagai referensi.
String koneksi mentah muncul dalam artikel ini hanya untuk tujuan demonstrasi. Di lingkungan produksi, selalu lindungi kunci akses Anda. Gunakan Azure Key Vault untuk mengelola dan memutar kunci Anda dengan aman dan mengamankan string koneksi Anda menggunakan ID Microsoft Entra dan mengotorisasi akses dengan ID Microsoft Entra.
git clone git@github.com:aspnet/AzureSignalR-samples.git
cd samples/Management
# Start the negotiation server
# Negotiation server is responsible for generating access token for clients
cd NegotiationServer
dotnet user-secrets set Azure:SignalR:ConnectionString "<Connection String>"
dotnet run
# Use a separate command line
# Start a client
cd SignalRClient
dotnet run
Lihat peristiwa registri
Anda sekarang telah menghubungkan klien ke SignalR Service. Buka aplikasi web Penampil Event Grid, dan Anda akan melihat peristiwa ClientConnectionConnected. Jika Anda mengakhiri klien, Anda juga akan melihat ClientConnectionDisconnected peristiwa.