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(ES20xx),Java,AWSの大体のリソースです
コメントはやさしくお願いいたします^^
座右の銘は、「狭き門より入れ」「願わくは、我に七難八苦を与えたまえ」です^^


コメント