AWS Lambda と API Gateway するときのLambda scaffold
AWS Lambda と API Gateway するときのLambda scaffold:
なんかしょっちゅうやりそうな気がするのでメモ。
これをベースにLambda + API Gateway で S3 やらその他のAWSサービスに触るようなAPIを、ぺぺぺぺーっと作れる。
なんかしょっちゅうやりそうな気がするのでメモ。
これをベースにLambda + API Gateway で S3 やらその他のAWSサービスに触るようなAPIを、ぺぺぺぺーっと作れる。
const aws = require('aws-sdk');
const s3 = new aws.S3({});
// なんとなくS3にアタッチする気分だけのテストコード
exports.handler = async (event, context, callback) => {
const resource = event.resource; // API Gatewayのリソースのパス(URL)
const path = event.path; // 同上
// よく使うやつ
const method = event.httpMethod; // GET, PUT...
const headers = event.headers; // { token: 'my-token', contentType...}
const queryParams = event.queryStringParameters; // { q: 'query', ...}
const body = event.body; // string-data, Binary, Form(multipart), etc...
// multipart/form-data はLambda上だと地味面倒なので極力やめよう。busboyを使う方法がある。
console.log(method, headers, queryParams)
const lsOutput = await s3.listObjectsV2({Bucket: 'バケット名', Prefix:'upload/', Delimiter: '/'}).promise()
await s3.putObject({Bucket: 'gcm-bulktraffic', Key:'upload/'+ queryParams.name, Body: body}).promise();
// TODO implement
const response = {
statusCode: 200,
body: JSON.stringify('Hello from Lambda!'),
};
return response;
};
コメント
コメントを投稿