Software Design 2017年10月号にピクスタでも一部のシステムで使用しているServerlessFrameworkのハンズオン記事を寄稿しました。 これはその記事の中で使用するサンプルアプリケーションリポジトリです。
AWSの各サービスとServerlessFrameworkを使用し、画像アップロードシステムを作成します。具体的な処理は下記の通りです。
- API Gatewayで設定したAPIエンドポイントに画像データをPOST
- Lambdaが画像を受けとり、S3に格納
- S3にアップロードされたことをトリガーにDynamoDBに画像情報などを格納
- DynamoDBに格納したことをDynamoDBStreamsを通じてサムネイル作成処理用のLambdaが起動
まず初めに、ServerlessFrameworkのインストールを行います。
$ npm install serverless
$ sls -v
1.10.2
アプリケーションをデプロイするにはaws configureコマンドでアクセスキーなどのクレデンシャル情報を設定します。aws cliのインストールは公式ドキュメントを参照
$ aws configure
AWS Access Key ID [********************]:
AWS Secret Access Key [********************]:
Default region name [us-west-2]:
Default output format [text]:
awsコマンドの設定ができたらデプロイの準備が完了です。デプロイコマンドは下記の通りです。
$ sls deploy -v