- ソリューションアーキテクト
- プロジェクトマネージャー
- テクニカルオペレーション
- Other occupations (4)
- Development
- Business
- Other
こんにちは、高知からリモートインターンしている森田ドラゴンです。今日でタイガーさんのインターンが終わるとのことで、ちょっぴり寂しいですね。実はタイガーさんの日報の書き方や、slackの使い方を真似してインターンしていました。本当に有り難かったです。さらばタイガー永遠になれ。多分、JAWSのイベントで会うと思いますけどね笑。
AWS SAM の設定は目を皿にして見る
前回の課題の続きからやっていたのですが、AWS SAMのtemplate.yamlでエラーが吐かれていました。template.yamlを何回も見直してやっと気づいたのですが、本来Outputsと書く場所をOutputと書いていました。というかエラーログにも
Invalid template property or properties [Output]
とバッチリ書いてありました。 「Outputの項目にエラーがあるよ〜」という意味かと勘違いしていました。CloudFormationもそうでしたが、エラーに当たったときは、記述ミスという基本的なところをチェックしないとダメですね。
SeverlessFrameworkとAWS SAMの違いは?
次の課題は「 AWS SAMでやったこと( slackに通知を送るlambdaを作成 )をServerlessFrameworkでやる」というものでした。
sls create -t aws-python -p sample
と打ち込んだら、ほとんど手を加える必要のないテンプレート( )が生成されたので、あとは何も考えずに作業していました。油断していたら、森さんに「AWS SAMと ServerlessFrameworkの違いって分かったかな?」と質問されました。「それ考える課題だったのか・・・」と反省しました。裏の裏まで読んでいかないとダメですね。そのときは答えることができなかったので、この記事を書いている途中にざっくり調べてみました。
- ServerlessFrameworkはAWS限定のSAMではない。よってAWSから他のクラウドサービスに移行する際に楽
- AWS SAMはローカルでテストできる
- AWS SAMは当然AWSの様々なシステムと連携できる
調べた結果と、経験からわかることはこれくらいでした。勉強してきます。
API Gateway->Lambda->DynamoDB のシステム構築
今日、最後に出された課題はAPI GatewayとLambda、DynamoDBを連携させたシステムを構築するというものでした。API GatewayとDynamoDBへの理解が浅かったので、そのあたりの勉強をしつつ、進めていきました。
DynamoDBはRDBじゃない。これだけしか分かっていませんでした笑。そもそもRDBじゃなかったらデータの検索できないような気がしていたんですが、ちゃんとプライマリーキーという全てのレコードに与えられるカラムがあるみたいです。よかったよかった。データはLambdaで引っ張ってくるので、AWS SAMのtemplate.yamlに設定だけ書いておきました。
API Gatewayはurl生成してapi作るものとだけ認識していました。触っていくと、url からパスパラメータを渡す仕組みであったり、 簡単に get リクエストなどのレスポンスを作ることができる。ということがわかりました。便利なapiを作ることできそうなので、ワクワクします。パラメータをLambdaに渡すところで詰まってしまったので、次回はその続きから頑張ります。
現状Lambdaと連携させる部分で詰まっているので、Lambdaもpythonでの受け取ったデータの扱い方を勉強する必要がありそうです。
あと全然関係ないのですが、この課題が終わったあとはIoT関連か、「DynamoDBからデータを取ってきて、javascriptでページを動的に生成する」みたいな課題が用意されている、という話を聞きました。どちらもやってみたかった分野なので、、楽しみです。