LoginSignup
0
1

More than 3 years have passed since last update.

SAMでS3にCSVファイルアップロードをトリガーにDynamoDBへの登録処理の作成

Posted at

概要

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

作成手順

  1. コマンドsamを実行するためcloud9を起動
    • windowsでは文字コードの問題などでいろいろ面倒だったのでcloud9を使いました
  2. SAMのインストール 公式サイト を参照 dockerのインストールはスキップしました
  3. 以下の順でコマンドを実行してテンプレートを作成します 公式のチュートリアルの要領で実施しました
    1. sam init
      • ここでクイックスタートテンプレート、言語はpython、HelloWorldのサンプルを作成するものを選びました
      • 作成されたymlを上記の内容で修正、記載は次回以降予定ですがHelloWorldのディレクトリやモジュールを使いたい内容に修正
    2. sam validate
      • 修正したymlが正しいかの検証を行う
    3. sam build
      • プログラムを修正したときは実施が必要です。
    4. sam deploy --guided
      • デプロイを行います
      • --guidedを付けることでregionなどの設定ができます。

処理の内容などは次回以降・・・

0
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
1