Aracılığıyla paylaş


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:
  • bağlantılar: Bağlantı ömrü olayları. bir istemci bağlantısı bağlandığında veya bağlantısı kesildiğinde tetiklenir. Bağlı ve bağlantısı kesilmiş olayları içerir.
  • messages: İstemciler bir hub yöntemini çağırdığında tetiklenir. Bağlantılar kategorisindeki olaylar dışında diğer tüm olayları içerir.
{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:

  1. Sistem tarafından atanan bir kimlik veya kullanıcı tarafından atanan kimlik ekleyin. Bkz. Azure portalında yönetilen kimlik ekleme.

  2. 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

  3. 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.

  1. Azure SignalR Hizmeti gidin.
  2. Ayarlar'ı seçin.
  3. Hizmet Modu'nu Sunucusuz'a geçirin.
  4. Yukarı Akış URL Deseni'nin altına URL'ler ekleyin. Azure SignalR Hizmeti Yukarı akış ayarlarının ekran görüntüsü.
  5. Yukarı Akış Ayarları'nı açmak için Hub Kuralları'nı seçin. Azure SignalR Yukarı Akış ayarı ayrıntılarının ekran görüntüsü.
  6. İlgili alana kural değeri girerek Hub Kuralları, Olay Kuralları ve Kategori Kuralları'nı değiştirin.
  7. Yukarı Akış Kimlik Doğrulaması'nın altında
  8. Yönetilen Kimlik'i kullanın. (Yönetilen kimliği etkinleştirdiğinizden emin olun)
  9. 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 ManagedIdentityisteğ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 Targetbaş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))

Sonraki adımlar