Yukarı akış uç noktaları
Yukarı akış uç noktaları özelliği, Azure SignalR Hizmeti sunucusuz modda bir dizi uç noktaya ileti ve bağlantı olayı göndermesine olanak tanır. İstemci bağlantıları bağlandığında veya bağlantısı kesildiğinde uç noktaları bilgilendirmek üzere sunucusuz modda istemcilerden bir hub yöntemi çağırmak için yukarı akış uç noktalarını kullanabilirsiniz.
Not
Yukarı akış uç noktaları yalnızca sunucusuz modda yapılandırılabilir.
Yukarı akış uç noktası ayarları
Yukarı akış uç noktasının ayarları, siparişe duyarlı öğelerin bir listesinden oluşur:
- İletilerin nereye gönderileceğine yönelik bir URL şablonu.
- Bir dizi kural.
- Kimlik doğrulama yapılandırmaları.
Bir olay tetiklendiğinde, bir öğenin kuralları sırayla tek tek denetlener. İletiler, eşleşen ilk öğenin yukarı akış uç noktası URL'sine gönderilir.
URL şablonu ayarları
Çeşitli desenleri desteklemek için yukarı akış uç noktası URL'sini parametreleştirebilirsiniz. Önceden tanımlanmış üç parametre vardır:
Önceden tanımlanmış parametre | Açıklama |
---|---|
{hub} | Hub, Azure SignalR Hizmeti kavramıdır. Hub, yalıtım birimidir. Kullanıcıların kapsamı ve ileti teslimi bir hub'a kısıtlanır. |
{category} | Kategori aşağıdaki değerlerden biri olabilir:
|
{event} | İletiler kategorisi için olay, istemcilerin gönderdiği çağrı iletisindeki hedeftir. Bağlantılar kategorisi için yalnızca bağlı ve bağlantısı kesilmiş kullanılır. |
Bu önceden tanımlanmış parametreler URL deseninde kullanılabilir. Yukarı akış uç noktası URL'sini değerlendirirken parametreler belirtilen bir değerle değiştirilir. Örneğin:
http://host.com/{hub}/api/{category}/{event}
"Sohbet" hub'ında bir istemci bağlantısı bağlandığında, şu URL'ye bir ileti gönderilir:
http://host.com/chat/api/connections/connected
"Sohbet" hub'ında bir istemci hub yöntemini broadcast
çağırdığında, şu URL'ye bir ileti gönderilir:
http://host.com/chat/api/messages/broadcast
URL şablonu ayarlarında Key Vault gizli dizisi başvurusu
Yukarı akış uç noktası URL'si şifrelenmez. Key Vault kullanarak hassas yukarı akış uç noktalarının güvenliğini sağlayabilir ve bunlara yönetilen bir kimlikle erişebilirsiniz.
SignalR hizmet örneğinizde yönetilen kimliği etkinleştirmek ve Key Vault erişimi vermek için:
Sistem tarafından atanan bir kimlik veya kullanıcı tarafından atanan kimlik ekleyin. Bkz. Azure portalında yönetilen kimlik ekleme.
Key Vault'taki Erişim ilkelerinde yönetilen kimlik için gizli dizi okuma izni verin. Bkz. Azure portalını kullanarak Key Vault erişim ilkesi atama
Hassas metninizi yukarı akış uç noktası URL Düzeninde aşağıdaki söz dizimi ile değiştirin:
{@Microsoft.KeyVault(SecretUri=<secret-identity>)}
<secret-identity>
Key Vault'taki bir gizli dizinin tam veri düzlemi URI'sidir; isteğe bağlı olarak bir sürüm de dahil, örneğin, https://myvault.vault.azure.net/secrets/mysecret/ veya https://myvault.vault.azure.net/secrets/mysecret/ec96f02080254f109c51a1f14cdb1931Örneğin, tam bir başvuru aşağıdaki gibi görünür:
{@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
Azure İşlevinin yukarı akış uç noktası URL'si aşağıdaki gibi görünür:
https://contoso.azurewebsites.net/runtime/webhooks/signalr?code={@Microsoft.KeyVault(SecretUri=https://myvault.vault.azure.net/secrets/mysecret/)}
Not
Her 30 dakikada bir veya yukarı akış uç noktası ayarları veya yönetilen kimlik değiştiğinde hizmet gizli dizi içeriğini yeniden okur. Yukarı akış uç noktası ayarlarını değiştirerek bir güncelleştirmeyi hemen tetikleyebilirsiniz.
Kural ayarları
Hub kurallarını, kategori kurallarını ve olay kurallarını ayrı ayrı ayarlayabilirsiniz. Eşleşen kural üç biçimi destekler:
- Herhangi bir olayı eşleştirmek için yıldız işareti (*) kullanın.
- Birden çok olaya katılmak için virgül (,) kullanın. Örneğin,
connected, disconnected
bağlı ve bağlantısı kesilmiş olaylarla eşleşir. - Olayı eşleştirmek için tam olay adını kullanın. Örneğin,
connected
bağlı olayla eşleşir.
Not
SignalR tetikleyicisi ile Azure İşlevleri kullanıyorsanız, SignalR tetikleyicisi şu biçimde tek bir uç noktayı kullanıma sunar: <Function_App_URL>/runtime/webhooks/signalr?code=<API_KEY>
.
Yalnızca bu URL'ye URL şablonu ayarlarını yapılandırabilir ve Kural ayarları'nı varsayılan olarak tutabilirsiniz. ve <API_KEY>
bulma <Function_App_URL>
hakkında ayrıntılı bilgi için bkz. SignalR Hizmeti tümleştirmesi.
Kimlik doğrulama ayarları
Her yukarı akış uç noktası ayarı için kimlik doğrulamasını ayrı ayrı yapılandırabilirsiniz. Kimlik doğrulamasını yapılandırdığınızda, yukarı akış iletisinin Authentication
üst bilgisinde bir belirteç ayarlanır. Şu anda Azure SignalR Hizmeti aşağıdaki kimlik doğrulama türlerini destekler:
None
ManagedIdentity
öğesini seçtiğinizdeManagedIdentity
, önce Azure SignalR Hizmeti'de yönetilen kimliği etkinleştirmeniz ve isteğe bağlı olarak bir kaynak belirtmeniz gerekir. Ayrıntılar için bkz. Azure SignalR Hizmeti için yönetilen kimlikler.
Azure portalı aracılığıyla yukarı akış uç noktası ayarlarını yapılandırma
Not
App Service Ortamı ile tümleştirme şu anda desteklenmiyor.
- Azure SignalR Hizmeti gidin.
- Ayarlar'ı seçin.
- Hizmet Modu'nu Sunucusuz'a geçirin.
- Yukarı Akış URL Deseni'nin altına URL'ler ekleyin.
- Yukarı Akış Ayarları'nı açmak için Hub Kuralları'nı seçin.
- İlgili alana kural değeri girerek Hub Kuralları, Olay Kuralları ve Kategori Kuralları'nı değiştirin.
- Yukarı Akış Kimlik Doğrulaması'nın altında
- Yönetilen Kimlik'i kullanın. (Yönetilen kimliği etkinleştirdiğinizden emin olun)
- Verilen belirteçteki hedef kitle'nin altındaki seçenekleri belirleyin. Ayrıntılar için bkz. Azure SignalR Hizmeti için yönetilen kimlikler.
Resource Manager şablonu aracılığıyla yukarı akış uç noktası ayarlarını yapılandırma
Azure Resource Manager şablonu kullanarak yukarı akış uç noktası ayarlarını yapılandırmak için özelliğinde properties
ayarlayınupstream
. Aşağıdaki kod parçacığında yukarı akış uç noktası ayarlarını oluşturmak ve güncelleştirmek için özelliğinin upstream
nasıl ayarlanacağı gösterilmektedir.
{
"properties": {
"upstream": {
"templates": [
{
"UrlTemplate": "http://host.com/{hub}/api/{category}/{event}",
"EventPattern": "*",
"HubPattern": "*",
"CategoryPattern": "*",
"Auth": {
"Type": "ManagedIdentity",
"ManagedIdentity": {
"Resource": "<resource>"
}
}
}
]
}
}
}
Sunucusuz protokoller
Azure SignalR Hizmeti, aşağıdaki protokolleri izleyen uç noktalara ileti gönderir. bu protokolleri sizin için işleyen İşlev Uygulaması ile SignalR Hizmeti tetikleyici bağlamasını kullanabilirsiniz.
Metot
POST
İstek üst bilgisi
Veri Akışı Adı | Açıklama |
---|---|
X-ASRS-Connection-Id | İstemci bağlantısının bağlantı kimliği. |
X-ASRS-Hub | İstemci bağlantısının ait olduğu hub. |
X-ASRS-Category | İletinin ait olduğu kategori. |
X-ASRS-Olay | İletinin ait olduğu olay. |
X-ASRS-signature | Doğrulama için kullanılan karma tabanlı ileti kimlik doğrulama kodu (HMAC). Ayrıntılar için bkz . İmza . |
X-ASRS-Kullanıcı Talepleri | İstemci bağlantısının talep grubu. |
X-ASRS-Kullanıcı Kimliği | İletiyi gönderen istemcinin kullanıcı kimliği. |
X-ASRS-client-Query | İstemciler hizmete bağlandığında isteğin sorgusu. |
Kimlik Doğrulaması | kullanırken ManagedIdentity isteğe bağlı bir belirteç. |
Request body
Bağlandı
İçerik Türü: application/json
Bağlantı kesildi
İçerik Türü: application/json
Adı | Tür | Açıklama |
---|---|---|
Hata | Dize | Kapalı bağlantının hata iletisi. Bağlantılar hata olmadan kapatıldığında boş olur. |
Çağırma iletisi
İçerik Türü: application/json
veya application/x-msgpack
Adı | Tür | Açıklama |
---|---|---|
InvocationId | Dize | Çağırma iletisini temsil eden isteğe bağlı bir dize. Çağrılar'da ayrıntıları bulun. |
Hedef | Dize | Olayla aynı ve çağrı iletisindeki hedefle aynı. |
Bağımsız değişkenler | Nesne dizisi | içinde Target başvuruda bulunılan yönteme uygulanacak bağımsız değişkenler içeren bir dizi. |
İmza
Hizmet, hem birincil erişim anahtarını hem de ikincil erişim anahtarını anahtar olarak HMAC
kullanarak değer için X-ASRS-Connection-Id
SHA256 kodunu hesaplar. Hizmet, yukarı akış uç noktasına HTTP istekleri yaparken üst bilgide X-ASRS-Signature
ayarlar:
Hex_encoded(HMAC_SHA256(accessKey, connection-id))