こんにちは高知からリモートインターンしている、森田ドラゴンです。鯉の画像にしているのは竜の画像のストックが尽きたからです。鯉はいずれ竜になるということで、許してください。
3日に渡って続いた、僕とCognitoの戦いもようやく終わりました。エラーが解決した瞬間、思わず空中に向かって正拳突きをしていました。
?# で解決?
昨日に引き続きドキュメントとにらめっこしていましたが、解決したのは全く予想外の方法でした。URLの最後に ?#をつけて http://localhost:8000/login.html?# のように記述することで、cognito関連の関数が正常に動作するようになりました。
これを試したのは本当に偶然でした。
「間違いなくコードは正しいし、Cognitoも動作してるから、ブラウザの設定が悪いのか?」
と考えながら適当に触っていると、?# がURLに入り込み、正常に動作しはじめました。終わってみると単純な解決策でしたが、何故これで動作しているのかいまだに分かっていません。それではよくないので、色々調べてみたんですが、検索ワードが悪いのかいまいちヒットしていないので、また時間を見つけて調べてみたいと思っています。サーバーの設定か、ブラウザの仕様などが関係していそうです。
ちなみにこの課題は
「HTMLとJSをS3に置いてウェブサイトとして公開し、Cognitoを使ってユーザー管理ができるようにする」
というものでした。次の課題もここから発展させていきます。JSのライブラリの挙動の見方が特に難しかったです。
次の課題はSystems Managerを利用したデータ管理
「先ほど使用した、CognitoのClient ID などをSystems Managerのパラメータストアに保存して呼び出す」
というのが次の課題です。まずはSystems Managerとは何かを調べてみました。
ざっくり説明すると「System Managerは複数のAWSのデータをを一元化し、効率よく運用できるサービス」ということらしいです。ちらっとコンソールをみてみたんですが、ec2のように項目が多くて、まだ掴みきれていません。とりあえずは
「アクセスIDなどのデータをプログラムに直接書くのは、色々な面でよくないから、そのためにあるサービス」
という感じかな?と思ったんですが、そう考えると Key Management Service との違いがわからなくなりますが、Systems Managerのコンソールに、「Key Management Serviceを利用する」という項目があったので、どちらかというと「もっと大きくデータを管理するサービス」という風に考えたほうが良さそうです。
振り返り
わけのわからないことで悩まされた課題でしたが、ドキュメントの読み方やwebのデバッグのやり方など、学びの多い課題だったように思います。この調子で頑張っていきます。