Freigeben über


Azure Web PubSub-Ausgabebindung für Azure Functions

Verwenden Sie die Web PubSub-Ausgabebindung , um den Azure Web PubSub-Dienst aufzurufen, um eine Aktion auszuführen. Sie können eine Nachricht senden an:

  • Alle verbundenen Clients
  • Verbundene Clients, die für einen bestimmten Benutzer authentifiziert sind
  • Verbundene Clients, die in einer bestimmten Gruppe miteinander verknüpft sind
  • Eine bestimmte Clientverbindung

Mit der Ausgabebindung können Sie außerdem Clients und Gruppen verwalten und Berechtigungen erteilen/widerrufen, die auf bestimmte ConnectionId mit Gruppe abzielen.

  • Hinzufügen einer Verbindung zu einer Gruppe
  • Hinzufügen von Benutzern zur Gruppe
  • Entfernen einer Verbindung aus einer Gruppe
  • Entfernen eines Benutzers aus einer Gruppe
  • Entfernen eines Benutzers aus allen Gruppen
  • Schließen aller Clientverbindungen
  • Schließen einer bestimmten Clientverbindung
  • Schließen von Verbindungen in einer Gruppe
  • Zuweisen der Berechtigung für eine Verbindung
  • Widerrufen der Berechtigung für eine Verbindung

Informationen zu Setup- und Konfigurationsdetails finden Sie in der Übersicht.

Beispiel

[Function("WebPubSubOutputBinding")]
[WebPubSubOutput(Hub = "<hub>", Connection = "<web_pubsub_connection_name>")]
public static WebPubSubAction Run([HttpTrigger(AuthorizationLevel.Function, "get", "post")] HttpRequestData req)
{
    return new SendToAllAction
    {
        Data = BinaryData.FromString("Hello Web PubSub!"),
        DataType = WebPubSubDataType.Text
    };
}

const { app, output } = require('@azure/functions');
const wpsMsg = output.generic({
    type: 'webPubSub',
    name: 'actions',
    hub: '<hub>',
});

app.http('message', {
    methods: ['GET', 'POST'],
    authLevel: 'anonymous',
    extraOutputs: [wpsMsg],
    handler: async (request, context) => {
        context.extraOutputs.set(wpsMsg, [{
            "actionName": "sendToAll",
            "data": `Hello world`,
            "dataType": `text`
        }]);
    }
});

Hinweis

Vollständige Beispiele für diese Sprache stehen aus.

Hinweis

Die Web PubSub-Erweiterungen für Java werden noch nicht unterstützt.

WebPubSubAction

WebPubSubAction ist der abstrakte Basistyp von Ausgabebindungen. Die abgeleiteten Typen stellen die Aktion dar, die der Server vom Dienst aufrufen möchte.

In der Programmiersprache C# geben Sie einige statische Methoden unter WebPubSubAction an, um die verfügbaren Aktionen zu ermitteln. Sie können Benutzer*innen beispielsweise die SendToAllAction erstellen, indem sie WebPubSubAction.CreateSendToAllAction() aufrufen.

Abgeleitete Klasse Eigenschaften
SendToAllAction Daten, Datentyp, Ausgeschlossen
SendToGroupAction Gruppe, Daten, Datentyp, Ausgeschlossen
SendToUserAction BenutzerId, Daten, Datentyp
SendToConnectionAction Verbindungskennung, Daten, Datentyp
AddUserToGroupAction Benutzer-ID, Gruppe
RemoveUserFromGroupAction Benutzer-ID, Gruppe
RemoveUserFromAllGroupsAction Benutzer-ID
AddConnectionToGroupAction Verbindungs-ID, Gruppe
RemoveConnectionFromGroupAction Verbindungs-ID, Gruppe
CloseAllConnectionsAction Ausgeschlossen, Grund
CloseClientConnectionAction Verbindungs-ID, Grund
CloseGroupConnectionsAction Gruppe, ausgeschlossen, Grund
GrantPermissionAction Verbindungs-ID, Berechtigung, Zielname
RevokePermissionAction Verbindungs-ID, Berechtigung, Zielname

actionName ist der Schlüsselparameter zum Auflösen des Typs. Verfügbare Aktionen werden wie folgt aufgeführt.

Aktionsname Eigenschaften
sendToAll Daten, Datentyp, Ausgeschlossen
sendToGroup Gruppe, Daten, Datentyp, Ausgeschlossen
sendToUser BenutzerId, Daten, Datentyp
sendToConnection Verbindungskennung, Daten, Datentyp
addUserToGroup Benutzer-ID, Gruppe
removeUserFromGroup Benutzer-ID, Gruppe
removeUserFromAllGroups Benutzer-ID
addConnectionToGroup Verbindungs-ID, Gruppe
removeConnectionFromGroup Verbindungs-ID, Gruppe
closeAllConnections Ausgeschlossen, Grund
closeClientConnection Verbindungs-ID, Grund
closeGroupConnections Gruppe, ausgeschlossen, Grund
grantPermission Verbindungs-ID, Berechtigung, Zielname
revokePermission Verbindungs-ID, Berechtigung, Zielname

Wichtig

Die Nachrichtendateneigenschaft in den aktionen im Zusammenhang mit gesendeten Nachrichten muss sein string , wenn der Datentyp auf json die Datenkonvertierungsdeutigkeit festgelegt oder text verhindert werden soll. Verwenden Sie JSON.stringify(), um das benötigte JSON-Objekt zu konvertieren. Dies wird an jeder Stelle mithilfe der Nachrichteneigenschaft angewandt, z. B. durch UserEventResponse.Data bei Verwendung von WebPubSubTrigger.

Wenn der Datentyp auf binary festgelegt wurde, ist es zulässig, einen nativ unterstützten dataType als binary zu binden, wie in function.json konfiguriert. Weitere Informationen finden Sie unter Trigger- und Bindungsdefinitionen.

Konfiguration

Die folgende Tabelle gibt Aufschluss über die Bindungskonfigurationseigenschaften, die Sie in der Datei „function.json“ und im WebPubSub-Attribut festlegen.

Eigenschaft von „function.json“ Attributeigenschaft BESCHREIBUNG
Typ Nicht zutreffend Muss auf webPubSub festgelegt werden.
Richtung Nicht zutreffend Muss auf out festgelegt werden.
Name Nicht zutreffend Variablenname, der im Funktionscode für das Ausgabebindungsobjekt verwendet wird
Nabe Drehscheibe Dieser Wert muss auf den Namen des Web PubSub-Hubs festgelegt werden, damit die Funktion ausgelöst werden kann. Das Festlegen des Werts als einer mit höherer Priorität wird im Attribut unterstützt. Alternativ kann dies in den App-Einstellungen als globaler Wert festgelegt werden.
Verbindung Verbindung Der Name der App-Einstellung, die die Verbindungszeichenfolge des Web PubSub-Diensts enthält (standardmäßig WebPubSubConnectionString)

Wichtig

Um optimale Sicherheit zu gewährleisten, sollte Ihre Funktions-App verwaltete Identitäten verwenden, wenn Sie eine Verbindung mit dem Web PubSub-Dienst herstellen, anstatt eine Verbindungszeichenfolge zu verwenden, die einen freigegebenen geheimen Schlüssel enthält. Weitere Informationen finden Sie unter Autorisieren einer verwalteten Identitätsanforderung mithilfe der Microsoft Entra-ID.

Problembehandlung

Einrichten der Konsolenprotokollierung

Sie können auch einfach die Konsolenprotokollierung aktivieren, wenn Sie ausführliche Informationen zu den von Ihnen an den Dienst gesendeten Anforderungen erhalten möchten.