なんとかするから、なんとかなる

エンジニア関係のことを書きます

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();

参考URL