nodejs
文字コード
iconv
lambda

amazon lambda上で文字コード変換をする上でハマるたったひとつの罠

開発環境とlambda環境の違い

  • npm installで処理するネイティブモジュールは環境に依存するため、lambdaについてはEC2上に同環境を作成して処理しないとうまく動かないことがある
  • 特にiconv!
# mac上だとうまくエンコードできるのに・・・(EC2上でネイティブモジュールを処理したものであればOK)
Error: Encoding not recognized: 'ISO-2022-JP' (searched as: 'iso2022jp')

最新のlambda環境をつくるためのAMI

http://docs.aws.amazon.com/ja_jp/lambda/latest/dg/current-supported-versions.html

余談

  • nodemalilerでiso-2022-jpがうまく扱えない記事を読みiconvを入れたにも関わらず、うまく動かない一因がおそらくこれ
  • 入れただけでうまく動かない場合はmimelibのデコードも合わせて利用しましょう