【AWS勉強】AWS Lambda実践ガイド第2版
購入した経緯
業務でLambdaを使った開発作業に携わることが多く、API GatewayやSQS・DynamoDBと連携して動作するシステムの構築をした際もモヤモヤしたままの状態だったので、1からしっかり勉強しようと購入。
手を動かしたこと
1〜3章まではLambdaで開発する上で必要な操作方法などの基礎的な知識が記載された部分だったので、「うんうん、そうだよね」といった感じでさらっと流し読みした。
4章からは実際にプライベートのAWSアカウントを使用して、ハンズオンを実施した。
- Cloud9でのLambda開発
- ユーザー登録した人だけが、登録ユーザー専用コンテンツをダウンロードできるシステムの構築
ハマったところ
DynamoDBテーブルの属性更新「update_item()」メソッドに設定する引数が理解できてなかったがそれなりにわかるようになった。(boto3のドキュメントでは「???」となっていた)
Key
対象となる項目を特定するキー。
「tablename属性がtablename変数に入っている値であるものを対象とする」という意味になる。
UpdateExpression
更新式
seq属性をseq属性の値に「:valというパラメータの値」を足したものを設定する、という意味になる。
パラメータの名称は「:」で始まる。:valというパラメータは次のExpressionAttributeValuesで指定する。
ExpressionAttributeValues
UpdateExpressionの式で使用するパラメータ。
':val' : 1
「:val」というパラメータに「1」を設定するという意味になる。すなわち、
set seq = seq + 1
という意味になりseqの属性値が「1増える」という挙動になる。
ReturnValues
戻り値にどのような値を返すかを指定する。
先ほどのコードでは「'UPDATED_NEW'」を指定しているので、「更新したあとの新しい値」が戻り値として返される。
【ReturnValuesの取り得る値】
'NONE':値を返さない
'ALL_OLD':追加・更新・削除されたすべての「元の値」を返す
'UPDATED_OLD':更新した「元の値」を返す
'ALL_NEW':追加・更新したすべての「新しい値」を返す
'UPDATED_NEW':更新したすべての「新しい値」を返す
1回目としてざっとハンズオンしてみたので、2周目では同じようなシステムを自分で応用してやってみたい。