timeoutsを試してみたので記載していきます。Fuctionsの公式にサイトにあるSamplesとWalkthrouthsの内容です。Functionsのローカル実行環境を構築していない人は下記を参照してください。本記事はローカル実行環境が構築済みであることを前提とします。kokoniおっさんの日常とクラウドとblog.kokoni.jpまた、今回のTwiilioのAPI連携を利用するためTwillowの登録をしておく必要があります。Functionsのパターンについては下記を参照してください。kokoniおっさんの日常とクラウドとblog.kokoni.jp※本記事は2017年7月30日時点の情報となります。※現時点ではWindosOSでのみ対応しているのでWindows10で実施した内容となります。timeoutsは人間の所作を介在させるオーケストレーションを利用するパターンです。実際の人物がプロセスに介在し、その人物に通知を送信し、その人物のアクションを非同期的に応答を受け取り実施します。今回のサンプルソースはTwilioを利用した電話認証のサンプルになります。Twilioの電話認証APIにリクエストして認証コードを取得しレスポンスを返します。Twilioの有料版であれば電話番号にSMSで認証コードを返却するということが可能ですがここではテスト用のサブスクリプションで実行するのでコンソールとポストマンでやり取りします。サンプルを実行する前にTwilioの設定をしておく必要があります。Twilioのサイトにアクセスして認証キーを取得しlocal.settings.jsonに登録しましょう。Twilioの設定>一般からテストクレデンシャルの情報を取得。local.settings.jsonの下記の部分に取得したキーを転記。PhoneNumberはテストクレデンシャル用の“+15005550006′′を利用。“+15005550006”Twilioのテストクレデンシャル用の電話番号については下記のリファレンスを参照してください。jp.twilio.comそれではVSで実行後にポストマンでポストを試してみましょう。今回のリクエストURLは下記でリクエスト設定としてHeadersにContent-Type:Application/jsonを指定してBodyをRawに指定して“+15005550006”を設定してポストします。http://localhost:7071/orchestrators/E4_SmsPhoneVerification正常に実行されれば下記のようにレスポンスが返ってきます。ここではstatusQueryGetUriとsendEventPostUriを利用します。現在の状態を確認するためstatusQueryGetUriを実行します。inputに指定した電話番号が表示されステータスがRunning状態になっているのがわわかると思います。次に認証コードを取得します。こちらはE4_SmsPhoneVerificationにポスとした時のログとしてコンソールに出力されているのでそれを利用します。認証コードをPOSTして認証するにはsendEventPostUriのURLを利用します。{eventName}の部分を“SmsChallengeResponse”に置き換えて利用します。HttpHeadersはContent-Type:Application/jsonに指定してbodyはrawを選択して認証コードを設定しPOSTを試してみましょう。認証コードのPOST後に現在の状態を取得するためstatusQueryGetUriのURLを実行します。下記のように状態がCompletedとなっていてoutputにtrueが設定されていれば認証が成功したことになります。試しに間違った認証コードでPOSTを行ってみましょう。間違った認証コードでPOSTするとoutputがfalseになっている事を確認できると思います。これは認証に失敗したことを表します。プログラムの設定では90秒のTimeOutが設定されているので認証コードをポストせずに90秒が経過しても同様に認証失敗となります。動きを確認できたらプログラムを確認してみましょう。timeoutsのサンプルになります。challengeCode;}まずE4_SmsPhoneVerificationにリクエストをするとリクエストBodyから電話番号を取得します。その電話番号を以ってE4_SendSmsChallengeという関数が呼ばれます。E4_SendSmsChallengeは認証コードを生成して、TwilioのAPIに指定の電話番号の端末に認証コードをSMSで送付するという処理を行います。ここではテスト用の電話番号を利用しているため実際の携帯デバイスには送付されません。認証コードのリクエストを待機するためにCancellationTokenSourceを利用してWaitをかけます。expiredとなります。Timeoutとして処理を続行します。interactionは人間の所作を介在させるパターンなので人間の所作が完了するまで処理を待機することは理解できたと思います。そこに時間制限を加えることで所作がなくても処理を完了させることが可能なことも併せて理解できたと思います。サンプルではSMS利用したコード認証でしたが、これを利用すればLineBotで時間制限付のクイズゲームなんかが作れちゃうんじゃないかと愚考する次第です。いいアイデアがわかないものかしら・・・。LinkedInスポンサーリンクkokonikokoni関連記事azureWebAppsのIP制限2017年8月のWebAppsのアップデートで地味に便利な機能が追加されました。それがIPアクセス制限です。これ地味に便利というかなんで今までなかったのと聞きたくなる機能です。ポータル画面から簡単に設定できるので本当にありがたいですね。Functionsですがとうとう本日Portalまで進化してしまいました。何がどう変わったか触ってみたので記事にしたいと思いす。※本記事は2017年4月11日時点の記事になります。2018の17日目の記事になります。2017年11月で登壇してきました2017年11月の.Netラボにて登壇してきました。今回の.NetラボはAzureをメインにした内容とのことで登壇依頼を頂きまして快諾した所存でございます。Functionsの概要」です。先日参加したCommPlusFetival2015でMicrosoft社が提供しているIEとかEdgeのデバッグをしてくれたりするサイトを知りましたのでご紹介です。コメントをキャンセルメールアドレスが公開されることはありません。※サイト次回のコメントで使用するためブラウザーに自分の名前、メールアドレス、サイトを保存する。上に表示された文字を入力してください。Δホームazurekingkinoクラウドとサウナをこよなく愛するおっさんです。テック系の備忘録や日常の事が多いブログです。投稿内容はあくまで個人の見解なります。所属する企業・団体の意見を表すものではありませんので予めご了承ください。defined.")}))})()。