概要
S3にCSVファイルをアップロードすることでLambdaを起動させてDynamoDBに登録する処理を作成したのでその時の内容です。公式ドキュメントにはいろいろ乗っているので基本はそちらを見るといいかも?
前回の投稿で作成したDynamoDBを使うSAM側の内容です。
template
template.yamlの定義は以下のようになります
AWSTemplateFormatVersion: '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Description: >
writeSignalDatas
Sample SAM Template for writeSignalDatas
# More info about Globals: https://github.com/awslabs/serverless-application-model/blob/master/docs/globals.rst
Globals:
Function:
Timeout: 3
Resources:
WriteSignalDatasFunction:
Type: AWS::Serverless::Function # More info about Function Resource: https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#awsserverlessfunction
Properties:
CodeUri: writeSignalDatas/
Handler: app.lambda_handler
Runtime: python3.7
Policies: AWSLambdaExecute
Events:
WriteSignalDatasEvent:
Type: S3
Properties:
Bucket: !Ref SignalDataBucket
Events: s3:ObjectCreated:*
SignalDataBucket:
Type: AWS::S3::Bucket
作成手順
- コマンドsamを実行するためcloud9を起動
- windowsでは文字コードの問題などでいろいろ面倒だったのでcloud9を使いました
- SAMのインストール 公式サイト を参照 dockerのインストールはスキップしました
- 以下の順でコマンドを実行してテンプレートを作成します 公式のチュートリアルの要領で実施しました
-
sam init
- ここでクイックスタートテンプレート、言語はpython、HelloWorldのサンプルを作成するものを選びました
- 作成されたymlを上記の内容で修正、記載は次回以降予定ですがHelloWorldのディレクトリやモジュールを使いたい内容に修正
-
sam validate
- 修正したymlが正しいかの検証を行う
-
sam build
- プログラムを修正したときは実施が必要です。
-
sam deploy --guided
- デプロイを行います
-
--guided
を付けることでregionなどの設定ができます。
-
処理の内容などは次回以降・・・