Web PubSub 出力バインドを使用して、Azure Web PubSub サービスを呼び出して何かを行います。 次のメッセージを送信できます。
- 接続されているすべてのクライアント
- 特定のユーザーに対して認証された接続されているクライアント
- 特定のグループに参加している接続されているクライアント
- 特定のクライアント接続
出力バインドを使用すると、クライアントとグループを管理したり、特定の connectionId とグループを対象とするアクセス許可を付与または取り消したりすることもできます。
- グループに接続を追加する
- ユーザーをグループに追加
- グループから接続を削除する
- グループからユーザーを削除
- ユーザーをすべてのグループから削除する
- すべてのクライアント接続を閉じる
- 特定のクライアント接続を閉じる
- グループ内の接続を閉じる
- 接続のアクセス許可を付与する
- 接続のアクセス許可を取り消す
セットアップと構成の詳細については、概要に関するページをご覧ください。
例
[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`
}]);
}
});
注
この言語の完全なサンプルは保留中です
注
Java 用 Web PubSub 拡張機能はまだサポートされていません。
WebPubSubAction
WebPubSubAction
は、出力バインドの基本抽象型です。 派生型は、サーバーがサービスに呼び出させるアクションを表します。
C# 言語では、使用可能なアクションを検出できるように、WebPubSubAction
に静的メソッドがいくつか用意されています。 たとえば、ユーザーは SendToAllAction
を呼び出して WebPubSubAction.CreateSendToAllAction()
を作成できます。
派生クラス | プロパティ |
---|---|
SendToAllAction |
Data、DataType、Excluded |
SendToGroupAction |
Group、Data、DataType、Excluded |
SendToUserAction |
UserId、Data、DataType |
SendToConnectionAction |
ConnectionId、Data、DataType |
AddUserToGroupAction |
UserId、Group |
RemoveUserFromGroupAction |
UserId、Group |
RemoveUserFromAllGroupsAction |
UserId |
AddConnectionToGroupAction |
ConnectionId、Group |
RemoveConnectionFromGroupAction |
ConnectionId、Group |
CloseAllConnectionsAction |
Excluded、Reason |
CloseClientConnectionAction |
ConnectionId、Reason |
CloseGroupConnectionsAction |
Group、Excluded、Reason |
GrantPermissionAction |
ConnectionId、Permission、TargetName |
RevokePermissionAction |
ConnectionId、Permission、TargetName |
actionName
は、型を解決するためのキー パラメーターです。 使用可能なアクションを次に示します。
アクション名 | プロパティ |
---|---|
sendToAll |
Data、DataType、Excluded |
sendToGroup |
Group、Data、DataType、Excluded |
sendToUser |
UserId、Data、DataType |
sendToConnection |
ConnectionId、Data、DataType |
addUserToGroup |
UserId、Group |
removeUserFromGroup |
UserId、Group |
removeUserFromAllGroups |
UserId |
addConnectionToGroup |
ConnectionId、Group |
removeConnectionFromGroup |
ConnectionId、Group |
closeAllConnections |
Excluded、Reason |
closeClientConnection |
ConnectionId、Reason |
closeGroupConnections |
Group、Excluded、Reason |
grantPermission |
ConnectionId、Permission、TargetName |
revokePermission |
ConnectionId、Permission、TargetName |
重要
データ型がstring
またはjson
に設定されている場合、データ変換のあいまいさを回避するには、送信されたメッセージ関連アクションのメッセージ データ プロパティをtext
する必要があります。
JSON.stringify()
を使用して、必要な JSON オブジェクトを変換してください。 これは、UserEventResponse.Data
と連携する WebPubSubTrigger
など、メッセージ プロパティを使用するあらゆる場所に適用されます。
データ型が binary
に設定されている場合は、dataType
で binary
として構成された function.json
が自然にサポートされるバインドを利用できます。詳細については、「トリガーとバインドの定義」を参照してください。
構成
次の表は、function.json ファイルと WebPubSub
属性で設定したバインド構成のプロパティを説明しています。
function.json のプロパティ | 属性のプロパティ | 説明 |
---|---|---|
タイプ | 該当なし |
webPubSub に設定されている必要があります。 |
方向 | 該当なし |
out に設定されている必要があります。 |
名前 | 該当なし | 出力バインド オブジェクトの関数コードで使用される変数名。 |
ハブ | ハブ | この値は、トリガーされる関数の Web PubSub ハブの名前に設定する必要があります。 高い優先順位として属性への値の設定をサポートしていますが、またはグローバル値としてアプリ設定に設定することもできます。 |
接続 | つながり | Web PubSub Service 接続文字列を含むアプリ設定の名前 (既定値は "WebPubSubConnectionString")。 |
重要
最適なセキュリティを確保するために、関数アプリでは、共有シークレット キーを含む接続文字列を使用する代わりに、Web PubSub サービスに接続するときにマネージド ID を使用する必要があります。 詳細については、「 Microsoft Entra ID を使用してマネージド ID 要求を認証するを参照してください。
トラブルシューティング
コンソール ログの設定
また、サービスに対して行う要求の詳細を確認する場合は、単にコンソールのログ記録を有効にすることもできます。