AWS SAMでデプロイしてみる

AWS運用自動化サービス「Cloud Automator」

技術課の森です。
そろそろre:Inventですね。
今年は休暇をいただいて参加しますので、見かけられましたら、一声かけてくださいね。

はじめに

今回はAWS SAMを使ってデプロイしてみるところを試してみます。
簡単な構成での作りですので、一度お試ししてもらえればと思います。

準備編

AWS CLIをインストール/初期設定

まずは、AWS CLIをインストールします。
インストールが終わったら、AWS CLIの設定を行っていきます。

S3バケットを作成

デプロイする時に利用するS3バケットを作成します。
今回は、「s3-awssam-samplebucket」とします。

フォルダ構成

取り決めはないのですが、ざっくり以下の感じでフォルダ構成を作成します。

ファイル 説明
awssam/src/app.py Lambdaのコードを書きます
awssam/template.yml SAMのテンプレートファイル ここにはAPI Gateway/Lambdaの情報だけを書きます

ファイルの内容

awssam/src/app.py

ここには通常のLambdaコードを書きます。好きなコードを書いて頂ければいいので、ここは割愛します。

awssam/template.yml

このファイルはデプロイする時にメインとなるファイルになります。

Globals にPython3.6で、タイムアウト300秒、メモリサイズを256MBで定義、
Resources にはいくつかのAWSリソースを入れてます。
今回は、Lambda/API Gateway/IAM Role/SNSを作っています。
ちなみに、API GatewayはIPアドレス制限をしてみてます。

デプロイ

ここまで用意できたら、後はコマンドを実行して、デプロイします。
カレントディレクトリを「awssam」フォルダとします。

これで、デプロイまで完了です。

さいごに

結構簡単に作り込みもAWSリソースもつくれますし、AWSリソースはCloudFormationテンプレートの書き方でリソースが作れるので、すごく便利ですね。
次回はtemplate.ymlを分けて書いてみることで、Lambda関連の設定とAWSリソースの設定に分離しながら開発できるやり方を書いてみようと思います。

AWS運用自動化サービス「Cloud Automator」