DynamoDBを使い始めて気をつけていること。DynamoDBをLambdaで使いたい

ここ一ヶ月ほど、API Gateway + Lambda + DynamoDBを使って、APIでDynamoDBを叩くようなものを作った。DynamoDBもLambdaも初心者。で、色々とわかったところあり、わからないということがわかったこともあり、わからないことさえわからないこともありつつ、考えるようにしていること、ハマったところ、気をつけていることなどを書く。

“DynamoDBを使い始めて気をつけていること。DynamoDBをLambdaで使いたい” の続きを読む

AWSのLambdaでcronみたいな感じで定期実行する

AWSのLambda関数を、Linuxのcronのような感じで定期的に実行したい時のやり方のメモ。

トリガーをCloudWatch Eventsのスケジュール式にすればよい。5分毎、のような設定が可能なRate式と、従来のcronとほぼ同じように毎月2時15分00秒、というような設定が可能なCron式の設定がある。

“AWSのLambdaでcronみたいな感じで定期実行する” の続きを読む

LambdaでS3をトリガーにした時にConfigurations overlap. Configurations on the same bucket cannot share a common event type.と怒られる

怒られる

LambdaでS3をトリガーにして保存しようとすると、「Configurations overlap. Configurations on the same bucket cannot share a common event type.」とか言って怒られる。

多分前の設定が残っているのでそのメモ。

“LambdaでS3をトリガーにした時にConfigurations overlap. Configurations on the same bucket cannot share a common event type.と怒られる” の続きを読む

既存システムにAWSのLambdaで作ったREST APIの認可で手こずる

既存のWebサービスのシステムについて、アプリケーションの肥大化とか、この先のことをメンテナンスとか、後はまぁ単にやってみたかったというのもあって、機能の追加でAWSのAPI Gateway + LambdaでREST APIを作成することにした。APIを誰でもかれでも使えては困ってしまうので、APIの保護をしなくてはならないのだが、これが思ったよりもだいぶ手こずった。結局、プライベートAPIを利用することになったのだが…。

“既存システムにAWSのLambdaで作ったREST APIの認可で手こずる” の続きを読む

simpleMicroServiceRoleでDynamoDBをqueryする権限を与える

AWSのLambdaでは実行ロールを用いてアクセス制御を行うわけだが、テンプレートポリシーのsimpleMicroServiceRoleを用いると、Cloud Watch LogsとDynamoDBの基本的な操作権限が与えられて便利だ。便利なのだが、Queryの権限がないので(Scanはあるのに)、その権限を追加するメモ。

“simpleMicroServiceRoleでDynamoDBをqueryする権限を与える” の続きを読む

AWS Lambda + API Gateway で/hoge/{group}/{user}のように階層構造のREST APIでパスパラメータの受け渡し

AWS系の記事を書くと、サービス名が入るのでどうしてもタイトルが長くなってしまうのがつらい。二時間ドラマでもここまで長くない。

AWS Lambda + API Gateway でREST APIを作るとして、/hoge/{group}/{user}のように、URI階層構造にして、かつ{group}と{user}をパスパラメータとして関数内で処理するようなパターンを考える。ちなみにLambdaはpython3で書いている。

“AWS Lambda + API Gateway で/hoge/{group}/{user}のように階層構造のREST APIでパスパラメータの受け渡し” の続きを読む

AWS Lambda + API Gateway でREST APIを作成し、値を渡してDynamoDBに書き込んでついでに返り値を得るサンプル

やたらと長い表題になってしまったがこのとおり。AWS Lambda + API Gateway でREST APIを作成する。API経由で値をjsonで渡してDynamoDBに書き込み、さらに返り値をjsonで得られるようなサンプルを作成する。Lambdaはpython3.6で書く。

すっごいハマった……。

“AWS Lambda + API Gateway でREST APIを作成し、値を渡してDynamoDBに書き込んでついでに返り値を得るサンプル” の続きを読む