Azure Serverless ワークショップ Deep Dive : モジュール 4
前回に続いて、今回はモジュール 4 の Deep Dive です。
GitHub: https://github.com/Azure-Samples/azure-serverless-workshop-team-assistant/tree/lang/jp/4-github-bot
概要
このモジュールでは Logic Apps を使ったボット機能の拡張をしています。全て GUI のため迷うところは少ないですが、面白い点はボットの登録先は Azure ファンクションである必要がなく、REST ベースで呼べるものであれば良い点です。
Logic App 作成時のトラブルシューティング
作成時点でうまくいかない場合は、以下の方法でトラブルシューティングできます。
ログの確認
1. アクティビティログを選択。
2. フィルター条件を指定して、適用。
GUI でうまく操作できない
ごく稀に、GUI でうまく入力できないなどの問題が出ます。その場合は以下の方法でトラブルシュートできます。
- 最新のブラウザまたは異なるブラウザで試してみる
- ズーム比率を変えて試してみる
- 余計なブレードを閉じて領域を確保する
それでもうまくいかない場合、Code View を使って直接編集することも可能です。慣れないうちは難しい感じがしますが、JSON 形式で定義されているだけですので、順番に見ると分かるはずです。
1. Logic App のメニューから Code View を開きます。
2. 必要な個所を編集して保存します。
Logic App 実行時のトラブルシューティング
構成は簡単なものの、うまく動作しない場合のトラブルシューティングは知っておいて損はないでしょう。
実行ログ
1. Azure ポータルより作成した Logic App を選択。Overview に Runs history と Trigger History がある。
2. Run history は実行履歴。Failed になっているものを開くと以下のように失敗した詳細が確認可能。この場合、”Create an issue” ステップで失敗。
3. 失敗したステップをクリックして展開。入出力の詳細が確認可能。この場合、"Issues are disabled for this repo" とあるため、Issue を登録できないレポジトリに登録しようとして失敗したと分かる。
4. ”Show raw inputs/outputs” リンクをクリックすると、raw データが確認可能。
5. 問題が修正できる場合は、修正後 ”Resubmit” ボタンをクリックすると同じ条件で再実行可能。
6. 一方 Trigger History は Logic App がトリガーされた履歴。そもそもトリガー出来ているかを確認するのに有用。
API 接続
Logic Apps を使うメリットは、各種サービスに対する接続とアクションが GUI で簡単に定義できることです。接続は API 接続として作成されますが、これを知っていると切り分けが容易になります。認証がうまくいっていない場合は、API 接続を確認してください。
1. メニューより API Connections を選択。
2. このモジュールでは GitHub に対する操作を追加したため、github 接続が作成されている。
3. 選択すると詳細が表示される。
4. ”API 接続の編集” をクリックすると、接続の詳細が確認可能。接続の種類によっては明示的な ”承認” が必要な場合もあり。その場合は ”承認する” ボタンをクリック。
尚、API 接続はリソースグループレベルで作成されるため、リソースグループの画面でも出てきます。
IP アドレス
Log Apps が外部のサービスにアクセスする場合、そちらのサービスで IP アドレス制限をかけているかもしれません。以下の方法で IP を確認します。
1. Properties を選択。
2. 各種設定の確認。OUTGOING アドレスは Logic Apps が外部サービスに接続する際に利用するアドレスで、ACCESS ENDPOINT は Logic Apps にアクセスする際に使う IP アドレス。
まとめ
Serverless テクノロジーの課題として、うまくいかない場合のトラブルシューティングがあります。Logic App も最近ではローカルで開発、テストをしてから公開することが出来るようになっていますので、是非そちらも検討してください。
参考: Visual Studio で Azure Logic Apps を作成してデプロイする
中村 憲一郎