Alexa音声アシスタント特集2018年02月10日SIN(336)34この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。はじめにAlexaのスキル開発では、他のシステムの機能を利用するためには、アカウントリンクが、ほぼ必須と言っても過言では無いと思います。アカウントリンクの設定は、結構ややこしくて、下記のような画面を見て悲しい思いをした方は多いのでは無いでしょうか。アカウントリンクが、うまく動作しない時の原因追求は、結構厄介です。その理由は、まず、エラーの原因を確認しようにもAlexa側のログを見ることが出来ないからです。OAuth2側も自前で提供していない限り、その詳細な情報を確認することは難しいでしょう。結果的に、設定値を色々変えて、ひたすら試行錯誤するような作業になってしまいます。今回は、Alexaブログで紹介されていた下記の記事を元に、アカウントリンクをデバッグする手法について試してみました。GatewayによるHTTPプロキシを設定し、すべてのHTTPトラフィックをログに記録する方法について紹介されています。同ブログでは、仕組みについて紹介するだけでなく、CloudFormationのテンプレートも提供されているため、非常に簡単にこのデバッグ用環境を構築することが可能です。環境構築それでは、簡単に環境構築の手順をなぞってみます。ものが設定されていますが、対象となるOAuth2のものに合わせる必要が有ります。出力タブで作成された2つのURLをコピーするここで出力される認証URLとトークンURLが、プロキシーの入口となるため、Alexa開発者コンソールのアカウントリンクの設定でURLをこれに置き換えることで、アクセスがプロキシー経由となります。どちらか1つだけ設定して、認可URLだけや、トークンURLだけをプロキシーすることも可能です。ログCloudWatchのLogsに3つの新しいロググループが表示されています。この中で、プロキシーとしてのログは、API-Gateway-Execution-Log.*グループにあります。このグループには多数のストリームがありますが、ここにログが出力され、日付でソートすることで、最新のもの確認することが出来ます。下記は、一度、アカウントリンクを実行した後の状態ですが、2つのログが出力されていることを確認できます。1つは、認証サーバに対するもので、もう一つは、アクセストークンを取得する時のログです。当然ですが、認可に関するのアクセス(認証画面でユーザ・パスワード・認可画面で権限を許可)のトラフィックは、このプロキシーを通りませんので、モニターすることはできません。下記は、ログから主要な情報を抜き出してみたものです。200※省略しましたが、各トラフィックのヘッダも確認できます。ログから、リクエストのパス、クエリ文字列、ヘッダ、本文、そしてレスポンスを見ることができます。この情報から、設定した内容に誤りは無いか、また、どの段階でエラーとなっているのかなどを確認する事ができます。認証スキームアカウントリンクのクライアント認証スキームの設定で、「HTTPベーシック認証(推奨)」と「リクエストボディーの資格情報」が選択できるようになっていますが、この違いをログから比べてみましょう。違いは、アクセストークンを取得するリクエストでクライアントシークレットをどうやってサーバに渡すかに現れます。クライアントシークレットの誤りクライアントシークレットに誤りがあった場合、いつものように原因のよく見えない画面になります。ログを確認するとアクセストークンの取得時に認証失敗のログを確認できます。scopeの誤り無効なscopeを設定してしまった場合の画面です。こちらは、認証サーバからのレスポンスで、エラーの原因が書かれたリダイレクト先へ飛ばされてるのが分かります。最後に今回は、ちょっと厄介なアカウントリンクのエラー時のデバッグについて試してみました。試行錯誤するよりも、このようにログを中心に追いかけた方が、きっと解決は早いでしょう。セキュリティ上の問題になりかねませんので、このようなプロキシーは、デバッグが終わったら確実に削除しておきましょう。CloudFormationのコンソールからスタックを削除することで,ログ以外は、全部削除されます。3,367,342CX事業本部の平内です。最近は、音声で操作するアプリの開発を担当させて頂いてます。リモート】クラスメソッドの会社説明会を開催しますクラスメソッドでは、AWS・AI・ビッグデータ・モバイルなどの技術職や営業のメンバーとして一緒にお仕事をする仲間を大募集しています。#cmdevio新型コロナウイルスの感染拡大を受け、本イベントを延期させていただくことになりました(開催時期未定)。お申し込みいただいた皆様には大変申し訳ございませんが、何卒ご理解いただけますようよろしくお願いいたします。AWSについてライトに色んな情報交換をしましょう。和樹25こんにちは植木和樹@上越オフィスです。Terminalの機能確定版がリリースされたので試してみました。CAFEの他、NTTデータとセブンイレブンの取り組みや、サインポスト、Zippinなどの各社と流通・小売業との連携を業界マップに作成してみました。川原征大4形態素解析の入門中で、ブログの内容の分析を試しています。作業効率化をしたという話。夏目祐樹395こんにちは、CX事業本部の夏目です。MacのタッチバーのタッチIDが非常に便利なのですが、Terminalでsudoを叩かないと行けないときに使えたらなぁと思ったので、情報を共有します。臼田佳祐295ワークフロー自動化OSSのn8nをAWS環境で建てて検証してみました。非常に期待できるサービスです。Fargateの勉強をしています。使ってみたい方は参考にしてください。洋介255SnowflakeがAWSの東京リージョン上で稼働するようになりました。データを日本に置けます。芳賀健233こんにちは!猫様の忠実なるしもべ、芳賀健です。Tokyoで開催されました。クラスメソッド株式会社が運営するAWS・iOS・HTML5に関する技術情報サイトです。