インストール
- Serverless Framework のインストール
$ npm install -g serverless
使ってみる
- github から Lei Xu さんのコードを clone する。
$ git clone https://github.com/komushi/serverless-s3-api.git
$ cd serverless-s3-api
$ npm install serverless-offline
$ serverless deploy
Serverless: Creating Stack...
Serverless: Checking Stack create progress...
.....
Serverless: Stack create finished...
Serverless: Packaging service...
Serverless: Uploading CloudFormation file to S3...
Serverless: Uploading function .zip files to S3...
Serverless: Uploading service .zip file to S3 (3.9 KB)...
Serverless: Updating Stack...
Serverless: Checking Stack update progress...
...................................................................
Serverless: Stack update finished...
Service Information
service: serverless-s3-api
stage: dev
region: ap-northeast-1
api keys:
None
endpoints:
GET - https://2pp***.execute-api.ap-northeast-1.amazonaws.com/dev/{bucket}/{key}
PUT - https://2pp***.execute-api.ap-northeast-1.amazonaws.com/dev/{bucket}
POST - https://2pp***.execute-api.ap-northeast-1.amazonaws.com/dev/{bucket}/{key}
functions:
getObject: serverless-s3-api-dev-getObject
putObject: serverless-s3-api-dev-putObject
postObject: serverless-s3-api-dev-postObject
- S3 にバケット "training-sally-az" を作成し、権限を設定する
確認
- IAMユーザーでAWSコンソールにログインし、東京リージョンの Lambda と S3 にデプロイされていることを確認。
- S3 にファイルを PUT してみる
$ curl -v -H "Content-Type:application/octet-stream" -X POST --data-binary "@./data/doc.pdf" https://2pp***.execute-api.ap-northeast-1.amazonaws.com/dev/training-sally-az/doc.pdf
$ aws s3 ls training-sally-az
2017-04-09 16:39:32 51 1491723570984
(中略)
2017-04-09 18:33:15 51 doc.pdf
$ curl -v -H "Accept: application/octet-stream" https://2pp***.execute-api.ap-northeast-1.amazonaws.com/dev/training-sally-az/doc.pdf -o ./data/doc_dl.pdf
補足
- IAMユーザーの権限不足のエラーが出たら、AWSコンソールで権限を付与する。