1
/
5

森田ドラゴンのインターンシップ 7日目 APIの仕組みから勉強中

 こんにちは、高知からリモートインターンしている森田ドラゴンです。今日でタイガーさんのインターンが終わるとのことで、ちょっぴり寂しいですね。実はタイガーさんの日報の書き方や、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の違いって分かったかな?」と質問されました。「それ考える課題だったのか・・・」と反省しました。裏の裏まで読んでいかないとダメですね。そのときは答えることができなかったので、この記事を書いている途中にざっくり調べてみました。

  1. ServerlessFrameworkはAWS限定のSAMではない。よってAWSから他のクラウドサービスに移行する際に楽
  2. AWS SAMはローカルでテストできる
  3. 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でページを動的に生成する」みたいな課題が用意されている、という話を聞きました。どちらもやってみたかった分野なので、、楽しみです。

Invitation from 株式会社サーバーワークス
If this story triggered your interest, have a chat with the team?
株式会社サーバーワークス's job postings
1 Likes
1 Likes

Weekly ranking

Show other rankings
Like 森田大智's Story
Let 森田大智's company know you're interested in their content