Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Bu makale kümesinde, Azure İşlevleri'da SignalR Hizmeti bağlamaları kullanarak Azure SignalR Hizmeti bağlı istemcilerde kimlik doğrulaması ve gerçek zamanlı iletiler gönderme açıklanmaktadır. Azure İşlevleri çalışma zamanı sürüm 2.x ve üzeri, SignalR Hizmeti için giriş ve çıkış bağlamalarını destekler.
Eylem | Tür |
---|---|
SignalR Hizmeti gelen iletileri işleme | Tetikleyici bağlaması |
Hizmet uç noktası URL'sini ve erişim belirtecini döndürme | Giriş bağlaması |
SignalR Hizmeti iletileri gönderme ve grupları yönetme | Çıkış bağlaması |
Uzantıyı yükleme
Yüklediğiniz NuGet uzantısı, işlev uygulamanızda kullandığınız C# moduna bağlıdır:
İşlevler yalıtılmış bir C# çalışan işleminde yürütülür. Daha fazla bilgi edinmek için bkz. Yalıtılmış çalışan işleminde C# Azure İşlevleri çalıştırma kılavuzu.
Bu NuGet paketini yükleyerek uzantıyı projenize ekleyin.
Paket yükleme
SignalR Hizmeti uzantısı, host.json proje dosyanızda belirtilen bir uzantı paketinin parçasıdır. 3.x veya sonraki bir sürümü hedefleyen bir proje oluşturduğunuzda, bu paketi zaten yüklemiş olmanız gerekir. Daha fazla bilgi edinmek için bkz . uzantı paketi.
Bağımlılık ekleme
Java işlevlerinde SignalR Hizmeti ek açıklamalarını kullanmak için pom.xml dosyanıza azure-functions-java-library-signalr yapıtına (sürüm 1.0 veya üzeri) bağımlılık eklemeniz gerekir.
<dependency>
<groupId>com.microsoft.azure.functions</groupId>
<artifactId>azure-functions-java-library-signalr</artifactId>
<version>1.0.0</version>
</dependency>
Bağlantılar
Azure SignalR Hizmeti bağlanmak için bağlantı dizesi veya Microsoft Entra kimliğini kullanabilirsiniz.
Bağlantı dizesi
Azure SignalR Hizmeti için bağlantı dizesi alma yönergeleri için bkz. Azure SignalR Hizmeti'da bağlantı dizeleri
Bu bağlantı dizesi adlı AzureSignalRConnectionString
bir uygulama ayarında depolanmalıdır. Uygulama ayarı adını bağlama yapılandırmasının connectionStringSetting
özelliğiyle özelleştirebilirsiniz.
Kimlik tabanlı bağlantılar
Gizli dizi içeren bir bağlantı dizesi kullanmak yerine 1.7.0 veya üzeri bir sürüm kullanıyorsanız, uygulamanın bir Microsoft Entra kimliği kullanmasını sağlayabilirsiniz.
Her şeyden önce, Microsoft Entra kimliğinizin Sahip SignalR Hizmeti rolüne sahip olduğundan emin olmalısınız.
Ardından, ortak bir ön eke AzureSignalRConnectionString
sahip ayarlar tanımlarsınız. Bağlama yapılandırmasının connectionStringSetting
özelliğiyle ön ek adını özelleştirebilirsiniz.
Bu modda, ayarlar aşağıdaki öğeleri içerir:
Özellik | Ortam değişkeni şablonu | Açıklama | Gerekli | Örnek değer |
---|---|---|---|---|
Hizmet URI'si | AzureSignalRConnectionString__serviceUri |
Hizmet uç noktanızın URI'sini. Yalnızca "Hizmet URI'sini" yapılandırdığınızda, uzantılar hizmette kimlik doğrulaması yapmak için DefaultAzureCredential türünü kullanmayı dener. | Evet | https://mysignalrsevice.service.signalr.net |
Belirteç Kimlik Bilgileri | AzureSignalRConnectionString__credential |
Bağlantı için bir belirtecin nasıl alınması gerektiğini tanımlar. Dağıtılan Azure İşleviniz yönetilen kimlik kimlik doğrulamasını kullanmayı planlıyorsa bu ayar olarak ayarlanmalıdır managedidentity . Bu değer yalnızca barındırma ortamında yönetilen kimlik kullanılabilir olduğunda geçerlidir. |
Hayır | ManagedIdentity |
Müşteri Kimliği | AzureSignalRConnectionString__clientId |
credential olarak ayarlandığındamanagedidentity , bu özellik belirteç alınırken kullanılacak kullanıcı tarafından atanan kimliği belirtmek üzere ayarlanabilir. özelliği, uygulamaya atanan kullanıcı tarafından atanan kimliğe karşılık gelen bir istemci kimliğini kabul eder. Hem Kaynak kimliği hem de istemci kimliği belirtmek geçersiz. Belirtilmezse, sistem tarafından atanan kimlik kullanılır. Bu özellik, ayar edilmemesi gereken yerel geliştirme senaryolarında credential farklı şekilde kullanılır. |
Hayır | 00000000-0000-0000-0000-000000000000 |
Kaynak Kimliği | AzureSignalRConnectionString__managedIdentityResourceId |
credential olarak ayarlandığındamanagedidentity , bu özellik belirteç alınırken kullanılacak kaynak Tanımlayıcısını belirtmek üzere ayarlanabilir. özelliği, kullanıcı tanımlı yönetilen kimliğin kaynak kimliğine karşılık gelen bir kaynak tanımlayıcısını kabul eder. Hem kaynak kimliği hem de istemci kimliği belirtmek geçersiz. Hiçbiri belirtilmezse, sistem tarafından atanan kimlik kullanılır. Bu özellik, ayar edilmemesi gereken yerel geliştirme senaryolarında credential farklı şekilde kullanılır. |
Hayır | /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/mygroup/providers/Microsoft.SignalRService/SignalR/mysignalrservice |
Not
Yerel, local.settings.json
veya Key Vault'ta kimlik tabanlı bağlantılar için ayarlar sağlamak üzere dosya kullanırken, adların doğru çözümlendiğinden emin olmak için ayarın adını ile __
değiştirin:
.
Örneğin, AzureSignalRConnectionString:serviceUri
.
Birden çok uç nokta ayarı
Ayrıca birden çok uç nokta yapılandırabilir ve uç nokta başına kimlik ayarlarını belirtebilirsiniz.
Bu durumda, ayarlarınız için ön ekini yazın Azure__SignalR__Endpoints__{endpointName}
.
{endpointName}
, bir grup ayarı bir hizmet uç noktasıyla ilişkilendirmek için sizin tarafınızdan atanan rastgele bir addır. Ön ek Azure__SignalR__Endpoints__{endpointName}
özelliğine göre connectionStringSetting
özelleştirilemiyor.
Özellik | Ortam değişkeni şablonu | Açıklama | Gerekli | Örnek değer |
---|---|---|---|---|
Hizmet URI'si | Azure__SignalR__Endpoints__{endpointName}__serviceUri |
Hizmet uç noktanızın URI'sini. Yalnızca "Hizmet URI'sini" yapılandırdığınızda, uzantılar hizmette kimlik doğrulaması yapmak için DefaultAzureCredential türünü kullanmayı dener. | Evet | https://mysignalrsevice1.service.signalr.net |
Uç Nokta Türü | Azure__SignalR__Endpoints__{endpointName}__type |
Hizmet uç noktasının birincil mi yoksa ikincil mi olduğunu gösterir. Belirtilmezse, varsayılan olarak olur Primary . Geçerli değerler ve Primary Secondary , büyük/küçük harfe duyarlı değildir. |
Hayır | Secondary |
Belirteç Kimlik Bilgileri | Azure__SignalR__Endpoints__{endpointName}__credential |
Bağlantı için bir belirtecin nasıl alınması gerektiğini tanımlar. Dağıtılan Azure İşleviniz yönetilen kimlik kimlik doğrulamasını kullanmayı planlıyorsa bu ayar olarak ayarlanmalıdır managedidentity . Bu değer yalnızca barındırma ortamında yönetilen kimlik kullanılabilir olduğunda geçerlidir. |
Hayır | ManagedIdentity |
Müşteri Kimliği | Azure__SignalR__Endpoints__{endpointName}__clientId |
credential olarak ayarlandığındamanagedidentity , bu özellik belirteç alınırken kullanılacak kullanıcı tarafından atanan kimliği belirtmek üzere ayarlanabilir. özelliği, uygulamaya atanan kullanıcı tarafından atanan kimliğe karşılık gelen bir istemci kimliğini kabul eder. Hem Kaynak kimliği hem de istemci kimliği belirtmek geçersiz. Belirtilmezse, sistem tarafından atanan kimlik kullanılır. Bu özellik, ayar edilmemesi gereken yerel geliştirme senaryolarında credential farklı şekilde kullanılır. |
Hayır | 00000000-0000-0000-0000-000000000000 |
Kaynak Kimliği | Azure__SignalR__Endpoints__{endpointName}__managedIdentityResourceId |
credential olarak ayarlandığındamanagedidentity , bu özellik belirteç alınırken kullanılacak kaynak Tanımlayıcısını belirtmek üzere ayarlanabilir. özelliği, kullanıcı tanımlı yönetilen kimliğin kaynak kimliğine karşılık gelen bir kaynak tanımlayıcısını kabul eder. Hem kaynak kimliği hem de istemci kimliği belirtmek geçersiz. Hiçbiri belirtilmezse, sistem tarafından atanan kimlik kullanılır. Bu özellik, ayar edilmemesi gereken yerel geliştirme senaryolarında credential farklı şekilde kullanılır. |
Hayır | /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/myrg/providers/Microsoft.ManagedIdentity/userAssignedIdentities/myusermanagedidentity |
Birden çok uç nokta hakkında daha fazla bilgi için bkz. Birden çok örnekle SignalR Hizmeti ölçeklendirme
En iyi güvenlik için, işlev uygulamanız paylaşılan gizli dizi anahtarı içeren bir bağlantı dizesi kullanmak yerine Azure SignalR hizmetine bağlanırken yönetilen kimlikleri kullanmalıdır. Daha fazla bilgi için bkz. Microsoft Entra tarafından yönetilen kimliklerle kaynakları Azure SignalR Hizmeti istekleri yetkilendirme.
Sonraki adımlar
SignalR Hizmeti ve Azure İşlevleri birlikte yapılandırma ve kullanma hakkında ayrıntılı bilgi için Azure SignalR Hizmeti ile Azure İşlevleri geliştirme ve yapılandırma makalesine bakın.