Azure Bot ServiceのStorage概要
Azure Bot Serviceのストレージに関するまとめです。
需要が高そうなら、真面目に記事に直します。
In-memory data storage
- 一時的なメモリ。Botが再起動するたびにクリアされる。
var inMemoryStorage = new builder.MemoryBotStorage(); var bot = new builder.UniversalBot(connector, [..waterfall steps..]) .set('storage', inMemoryStorage); // Register in-memory storage
- CosmosDB や Table storageなどにも繋ぐ事ができる
sessionについて
- sessionには複数のストレージ機能が付いている
userData | ユーザのチャンネルごとに保存される。複数のConversationにも横断的に使用する事ができる。 |
privateConversationData | 1 Conversation内でのみ利用できる |
conversationData | 1Conversation内で利用されるが、すべての参加ユーザで共有される(グループ会話など利用するのだろう) |
dialogData | ダイアログごとに保存される |
- node.js ではJavaScriptのデータや配列、jsonを保存する事ができる。
- DateやTimeを保存する場合は、JS特有の注意が必要そうだ。
session.userData.name = "tanaka tarou";
- messageをsendするか、save()を明示的に呼ぶ事で、ChatConnectorに繋がっているDataStorageに保存する事ができる。
session.save();
- 削除するときには、削除したいDataストレージに{}を代入してsave();
- nullやremove をするとエラーの元となるので注意。
session.userData = {}; session.save();