MS Teams botを用いたTeamsへの通知処理での注意点

MS Teams botを用いたTeamsへの通知処理での注意点

開発中

1. Teams Toolkit のテンプレートを使うと課金される

  • Azure Functionsには無料枠があるのでとりあえず無料枠でいろいろと確認することを考えていた
  • Teams ToolkitというTeams Botの作成のためのVS Code拡張機能があり、テンプレートが用意されていたのでそれを使用して開発を進める
  • テンプレートを使用してデプロイすると、常時起動するAzure App Serviceプランが適用されるため意図せず課金する流れが発生した
    • Auzreアカウント作成時にクレジットカードの情報を入力している
  • Teams Botの構築にAzure App Serviceプランが必須なのかは不明である

リリース後

2. AzureFunctionのResponseタイミング

  • responseタイミングを検討していない設計となっている際に、処理に時間をかかり、Timeoutのエラーが生じる
  • response実施後に処理を実施することが可能なので対応を見直す

responseの実施タイミングを見直したコードのサンプル

const httpTrigger: AzureFunction =  async function (
  context: Context,
  req: HttpRequest
): Promise<void> {
  context.res = {
    status: 200,
    body: { message: "Azure Function Quick Response Sample" },
  };
  context;
  AfterFunction();
}

const AfterFunction () {
  ...
}
;

3. manifest.jsonのscopeのtargetが全てのscopeとなっている

  • ある程度の規模の組織向けTeamsに対して、scopeの設定が適切でないと処理に時間を要してProcess Killが生じる
    • findMember のような関数を用いる際には注意する
  • defaultのsocpe: ["personal", "team", "groupchat"]
  • 用途に応じて、不要なパラメータを削除して運用する

4. AzureFunctionのDeploy を実施するとTeamsBotとの紐付きがロストする

  • AzureFunctionのDeployを実施するとデータのリセットが発生する
  • TeamsBotのデータをAzure Blob Storageで管理していない場合は、AzureFunctionのDeploy後に TeamsBotの再インストールが必要となる
  • Azure Blob Storage へのデータ登録をする必要がある
  • ユーザ情報の登録などは、TeamsBotのスタートタイミングで実施すると良い

5. Teams Bot の削除にてゴミデータが残る

  • ピン留めがされている時に発生しやすい
    • ピン留めが未使用であると、Teamsの立ち上がり時にBotが自動で立ち上がらない
  • 3日くらい待つキャッシュが削除されるとの文言があるので3日くらい待ってみる
この記事をシェア

弊社では、一緒に会社を面白くしてくれる仲間を募集しています。
お気軽にお問い合わせください!