Aracılığıyla paylaş


Azure İşlevleri için SignalR Service bağlamaları

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ı AzureSignalRConnectionStringbir 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 AzureSignalRConnectionStringsahip 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 credentialfarklı ş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 credentialfarklı ş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 PrimarySecondary, 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 credentialfarklı ş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 credentialfarklı ş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.