lambdaでcsv-stringifyを使用してcsv作成しs3にPUTする – AWS SDK for JavaScript v3
プロジェクト作成します。必要なライブラリをインストールします。
$ npm init -y $ npm pkg set type=module $ touch index.js $ npm i csv-stringify @aws-sdk/client-s3
csv-stringifyはJSON配列をCSVに変換してくれます。変換した文字列をS3にputする例です。
import { stringify } from 'csv-stringify/sync' import { S3Client, PutObjectCommand } from '@aws-sdk/client-s3' export async function handler(event, context) { const contents = [ { 'age': '10', '名前': 'sato' }, { 'age': '20', '名前': 'yamada' }, { 'age': '30', '名前': 'suzuki' } ] const csvString = stringify(contents, { header: true, quoted_string: true }) const client = new S3Client({ region: 'ap-northeast-1' }) const input = { Bucket: <バケット名>, Key: 'tmp/in.csv', // キー名 Body: csvString } const command = new PutObjectCommand(input) await client.send(command) return { statusCode: 200, body: `Hello` } }
デフォルトはUTF-8でファイル作成されます。
Shift-JISに変換したい場合はiconv-liteなどを使う必要があります。
KHI入社して退社。今はCONFRAGEで正社員です。関西で140-170/80~120万から受け付けております^^
得意技はJS(ES6),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^
コメント