これは、なにをしたくて書いたもの?
LocalStackに保存したデータは、LocalStackを停止すると失われるようなので、永続化する方法はないのかな?ということで。
DATA_DIR
環境変数を使えば良いみたいです。
環境
今回の環境は、こちら。
$ pip3 install localstack==0.12.17.5 $ localstack --version 0.12.17.5
LocalStackに保存するデータを永続化する
LocalStackに保存するデータを永続化するには、DATA_DIR
を指定してLocalStackを起動します。
Dockerで起動する場合。
$ DATA_DIR=`pwd`/data localstack start
ホスト側で通常のプロセスとして起動する場合。
$ DATA_DIR=`pwd`/data localstack start --host
どちらの起動形態でも有効です。
起動形態をオプションで指定できるのは知らなかったですが、デフォルトはLocalStackのDockerコンテナをダウンロード
してきて起動します。
$ localstack start --help Usage: localstack start [OPTIONS] Start LocalStack Options: --docker Start LocalStack in a docker container (default) --host Start LocalStack directly on the host --help Show this message and exit.
ホストにすると、最初の起動時にPythonのパッケージをダウンロードしてくるのですが、とても時間がかかるので
Dockerの方でいいかなと思います…。
ドキュメント的にもDockerを使う方が推奨なようですし。
なお、DATA_DIR
環境変数についてはGitHubのREADME.md
に記載があります。
DATA_DIR: Local directory for saving persistent data (currently only supported for these services: Kinesis, DynamoDB, Elasticsearch, S3, Secretsmanager, SSM, SQS, SNS). Set it to /tmp/localstack/data to enable persistence (/tmp/localstack is mounted into the Docker container), leave blank to disable persistence (default).
Kinesis、DynamoDB、Elasticsearch、S3、Secretsmanager、SSM、SQS、SNSのみですが、永続化できるようです。
デフォルトでは非永続化なのでLocalStackを再起動するとデータがなくなってしまいます、と。