lambdaでcsv-stringifyを使用してcsv作成しs3にPUTする – AWS SDK for JavaScript v3

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でファイル作成されます。

lambdaでcsv-stringifyを使用してcsv作成しs3にPUTする – AWS SDK for JavaScript v3

Shift-JISに変換したい場合はiconv-liteなどを使う必要があります。

コメント

株式会社CONFRAGE ITソリューション事業部をもっと見る

今すぐ購読し、続きを読んで、すべてのアーカイブにアクセスしましょう。

続きを読む

タイトルとURLをコピーしました