🦔

AWS SAMで、libicui18nのエラーが出てsam buildできない

2022/02/05に公開

AWSが出している、SAM(Serverless Application Model)というフレームワークがあります。

SAMとは、サーバーレス構成(API Gateway, Lambda, それに関わるIAMなど)をCloud Formation経由で一括でセットアップしてくれるツールで、とても便利なのですが、ビルドのコマンドであるsam build コマンドがエラーになる現象に遭遇しました。

一応解決できたので、記事として残そうと思います。

ちなみに、ローカルマシンは、macOS Big Surで、nodeのバージョン管理にnodenvを使用しています。

エラー内容

sam build のエラーメッセージは以下の通りです。

~/Projects/sam-app sam build                                      
Building codeuri: /Users/yohei/Projects/sam-app/hello-world runtime: nodejs14.x metadata: {} architecture: x86_64 functions: ['HelloWorldFunction']
Running NodejsNpmBuilder:NpmPack

Build Failed
Error: NodejsNpmBuilder:NpmPack - NPM Failed: dyld: Library not loaded: /usr/local/opt/icu4c/lib/libicui18n.68.dylib
  Referenced from: /usr/local/bin/node
  Reason: image not found

何やら、libicui18n というライブラリが無いとのこと。

解決方法

結局、以下のコマンドにて解決できました。

$ brew reinstall icu4c

他の技術ブログ等では、

$ brew install node で直った

という内容が多かったのですが、自分の環境ではnodenvを使っていたため、これだとまずそうと思い、色々調べることになりました。結局、よく分からずじまいでした😅

何はともあれ、無事にビルドできました。

参考

https://gist.github.com/berkedel/d1fc6d13651c16002f64653096d1fded

https://docs.aws.amazon.com/ja_jp/serverless-application-model/latest/developerguide/what-is-sam.html

https://qiita.com/SuguruOoki/items/3f4fb307861fcedda7a5

Discussion