Más contenido relacionado La actualidad más candente (20) Similar a Bot Serviceだけじゃない!Azureで加速させるLINE開発~Clova腹話術スキルの紹介~ (20) Bot Serviceだけじゃない!Azureで加速させるLINE開発~Clova腹話術スキルの紹介~2. 自己紹介
• Name
• 平林 拓将(ひらりん)
• Work
• テクニカルトレーナー/アーキテクト
• Like
• C# と Azure と LINE!
• Social
• Twitter:@himarin269
• GitHub:himanago
• Blog:http://himanago.hatenablog.com/
プロフィール画像迷走中
(Linux使いではありません)
13. Durable Functionsの基本
• 3種類の関数を作って使う
OrchestrationClient Orchestrator関数 Activity関数
• 外部から呼び出し/実行される
関数本体で、CEKやMessaging
APIからのHTTPリクエストを
で呼び出されるもの
• Orchestratorを起動する役割を
持つ
• Activityを呼び出し、オーケス
トレーションを担当する
• ランダム値やI/O処理、非同期
APIの呼び出しを直接行うこと
は禁止(Activityにやらせる必
要がある)
• Orchestratorからの実行指示で
起動する関数
• アプリケーションの機能を担当
する
Activity関数
Activity関数
履歴などの実行情報をストレージに書き込んで勝手に管理してくれる!
14. 各関数で使用する代表的なメソッド
• 関数同士を連携させて"Durable"な処理を作る部品が揃っている!
関数 メソッド名 処理内容
OrchestrationClient StartNewAsync Orchestratorを開始する。
TerminateAsync Orchestratorを終了する。
GetStatusAsync Orchestratorの状態を取得する。
RaiseEventAsync 任意の名前のイベントを起こす。
Orchestrator関数 CallActivityAsync Activityを呼び出して実行する。パラメータで好きな値を
渡せる(タプルやコレクションも使えるのでかなり自由)。
CallActivityWithRetryAsync 失敗した場合にリトライするCallActivityAsync。
CallSubOrchestratorAsync 別のOrchestratorを実行する。
CallSubOrchestratorWithRetryAsync 失敗した場合にリトライするCallSubOrchestratorAsync。
ContinueAsNew 今回実行した際の情報をパラメータとして渡して状態を
維持し、自身を再実行する。
WaitForExternalEvent 指定した名前のイベントが起きるまで待機する。
GetInput 呼び出し元から渡されたパラメータを取得する。
Activity関数 GetInput 呼び出し元から渡されたパラメータを取得する。
18. しくみ解説~ Botで操る腹話術
OrchestrationClient Orchestrator
起動時 or 読み上げ終了時
WaitForExternalEvent
RaiseEventAsync
LINE Botとの連携も自在な"Durable Session"
• 状態を確認し、完了するまで
無音無限ループで待機させる
OrchestrationClient
GetStatusAsync
無音mp3のPlayFinished時
無音mp3の再生指示
• 完了していたらセリフをしゃべらせ、
Orchestratorを再実行
22. まとめ
• Durable Functionsすごい
• コードのみで実現できる範囲を広げる真のサーバーレス
• LINE BotやClovaスキルの可能性を大きく広げる
• Azureはいいぞ
• ノンコーディングでいろいろできるLogic Appsも神
https://github.com/himanago/ClovaVentriloquism
★ソースコードはこちら(最新のものをマージ済み)
https://youtu.be/G2oJxSzdV4U
★デモ動画撮りました