Help us understand the problem. What is going on with this article?

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

概要

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などの設定ができます。

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

dmikita
メインJava開発でしたが、最近はpythonを使ってます。 AWS の勉強中 とりあえずソリューションアーキテクトアソシエイトはとれたので 現在ソリューションアーキテクトプロフェッショナル目指してます AWS 認定データベース – 専門知識 も興味あり
systemshared
株式会社システムシェアードはJavaによるシステム開発や、IT教育事業を得意とする、秋葉原のソフトウェアハウスです。
https://www.3sss.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away