AWS Lambda と API Gateway するときのLambda scaffold

AWS Lambda と API Gateway するときのLambda scaffold:

なんかしょっちゅうやりそうな気がするのでメモ。

これをベースに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; 
}; 

コメント

このブログの人気の投稿

投稿時間:2021-06-20 02:06:12 RSSフィード2021-06-20 02:00 分まとめ(3871件)

投稿時間:2021-04-30 23:37:32 RSSフィード2021-04-30 23:00 分まとめ(42件)

投稿時間:2023-02-05 02:09:04 RSSフィード2023-02-05 02:00 分まとめ(9件)