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


開発環境とlambda環境の違い

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

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

余談

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