Reason: Unable to start the local OpenSearch Instance.のエラーでamplify mockが失敗したときの対応方法メモ
aws-amplifyを使った開発で、@searchable ディレクティブを追加してamplify mockを実行したが、エラーが発生して、結果的に解決できたので対応方法を残します。
アイキャッチ画像はVue.jsですが、amplify mockの話なので、フレームワークは関係ありません。
amplify mockを実行したら以下のエラーで怒られた。
Failed to start API Mocking. Running cleanup tasks.
🛑 Failed to start API Mocking.. Reason: Unable to start the local OpenSearch Instance.
ローカルのOpenSearch(実体はElasticSearch?)が起動できていない模様。
Opensearch mock not working
https://github.com/aws-amplify/amplify-category-api/issues/1053
こちらを参考に以下コマンドを実施した。
% npm i -g @aws-amplify/cli@searchable-mocking-test
% amplify -v
% amplify api gql-compile
% amplify mock
それでもダメ。
以下コマンドで、バイナリは揃っていそうな感じ。
% ls ~/.amplify/lib/aws-amplify-amplify-opensearch-simulator/opensearch/1.3.0/
opensearch-min-1.3.0-linux-x64.tar.gz opensearch-min-1.3.0-linux-x64.tar.gz.sig opensearch.pgp opensearchLib
以下コマンドでopensearchを単体で動かしてみると、、、
% ~/.amplify/lib/aws-amplify-amplify-opensearch-simulator/opensearch/1.3.0/opensearchLib/bin/opensearch
could not find java in bundled jdk at /Users/xxx/.amplify/lib/aws-amplify-amplify-opensearch-simulator/opensearch/1.3.0/opensearchLib/jdk.app/Contents/Home/bin/java
バンドルされたJDKが見つからないとのこと。
以下を~/.zshrcに記載して、再読み込み。(javaのバージョンは入っている物を指定)
export JAVA_HOME=`/usr/libexec/java_home -v 16`
もう一度、opensearchを起動。
% ~/.amplify/lib/aws-amplify-amplify-opensearch-simulator/opensearch/1.3.0/opensearchLib/bin/opensearch
[2023-03-01T21:17:11,018][INFO ][o.o.n.Node ] [MacBook-Pro.local] version[1.3.0], pid[80162], build[tar/e45991597c86ba1bbcc36ee1dfdc165197a913af/2022-03-15T19:07:30.455415Z], OS[Mac OS X/11.5/x86_64], JVM[Oracle Corporation/OpenJDK 64-Bit Server VM/16.0.1/16.0.1+9-24]
[2023-03-01T21:17:11,021][INFO ][o.o.n.Node ] [MacBook-Pro.local] JVM home [/Library/Java/JavaVirtualMachines/jdk-16.0.1.jdk/Contents/Home], using bundled JDK [false]
・・・
動いた!
amplify mockも動くようになった!
めでたしめでたし!