localstack-extensions について
LocalStack のユーザーと拡張機能の開発者向けに、legacy localstack CLI での拡張機能の管理、設定、独自拡張の開発を説明するガイドです。lstk は拡張機能に対応せず、読み込みには localstack でエミュレーターを起動する必要がある点も示します。
主な機能
- 01拡張機能の一覧表示、導入、削除
- 02拡張機能の有効化と無効化
- 03環境変数による拡張機能の設定
- 04独自拡張機能の開発とローカル導入
- 05localstack と lstk の制約の説明
活用シーン
- 01LocalStack への拡張機能の追加
- 02特定バージョンや Git 拡張の導入
- 03開発中の独自拡張機能のテスト
- 04拡張機能の未読み込みやポート競合の調査
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ localstack/ skills --skill localstack-extensionsインストール後、Claude Code で/localstack-extensionsを入力して読み込まれたか確認します。
詳細
LocalStack 拡張機能
LocalStack 拡張機能を管理して、カスタム機能を追加し、サードパーティ製ツールを統合し、LocalStack の機能を拡張します。
lstkは拡張機能をサポートしていません。lstk extensionsコマンド一式はありません。拡張機能のインストールとエミュレーターの起動には、どちらも従来のlocalstackCLI を使用する必要があります。拡張機能は従来のボリュームにインストールされますが、lstkは独自のボリュームディレクトリ(lstk volume path、例:~/Library/Caches/lstk/volume/localstack-aws)を使用するため、lstkで起動したエミュレーターでは拡張機能が読み込まれません。それ以外のすべて(ライフサイクル、IaC、スナップショット、ログ)には、
lstkを優先してください。localstackスキルを参照してください。
機能
- LocalStack 拡張機能のインストールと管理
- 利用可能な拡張機能の検索
- 拡張機能の設定
- カスタム拡張機能の開発
前提条件
以下の例で使用する従来の CLI と awslocal ラッパー:
pip install localstack
pip install awscli-local # optional; or use: aws --endpoint-url=http://localhost:4566
lstk start と localstack start を同時に実行しないでください。それぞれ独自のコンテナを管理するため、ポート 4566 で競合します。一方を停止してから、もう一方を起動してください(lstk stop / localstack stop)。
拡張機能の管理
インストール済み拡張機能の一覧表示
localstack extensions list
拡張機能のインストール
# Install from PyPI
localstack extensions install localstack-extension-name
# Install specific version
localstack extensions install localstack-extension-name==1.0.0
# Install from Git repository
localstack extensions install "git+https://github.com/org/extension-repo.git"
拡張機能のアンインストール
localstack extensions uninstall localstack-extension-name
拡張機能の有効化/無効化
# Extensions are enabled by default after installation
# Disable via environment variable
EXTENSION_NAME_ENABLED=0 localstack start -d
利用可能な拡張機能
利用可能な拡張機能については、公式の拡張機能ライブラリと拡張機能のドキュメントをご覧ください。
拡張機能の使用
MailHog 拡張機能
# Install
localstack extensions install localstack-extension-mailhog
# Start LocalStack with the legacy CLI so the extension is loaded
localstack start -d
# Access MailHog UI
open http://localhost:8025
# SES emails will be captured by MailHog
awslocal ses send-email \
--from [email protected] \
--to [email protected] \
--subject "Test" \
--text "Hello"
カスタム拡張機能の開発
拡張機能の構成
my-extension/
├── setup.py
├── my_extension/
│ ├── __init__.py
│ └── extension.py
基本的な拡張機能
# extension.py
from localstack.extensions.api import Extension, http
class MyExtension(Extension):
name = "my-extension"
def on_extension_load(self):
print("Extension loaded!")
def on_platform_start(self):
print("LocalStack is starting!")
@http.route("/my-endpoint")
def my_endpoint(self, request):
return {"message": "Hello from extension!"}
ローカル拡張機能のインストール
# Install in development mode
localstack extensions install -e ./my-extension
# Developer mode helpers
localstack extensions dev list
localstack extensions dev enable ./my-extension
設定
拡張機能は、localstack start に渡す環境変数で設定します。
# General pattern
EXTENSION_<NAME>_<SETTING>=value localstack start -d
# Example
EXTENSION_MAILHOG_PORT=8025 localstack start -d
従来の CLI では、lstk で必要な LOCALSTACK_ プレフィックスを付けずに、これらの変数を指定する点に注意してください。
トラブルシューティング
- 拡張機能が読み込まれない:
lstk startではなくlocalstack startでエミュレーターを起動したことを確認してください。lstkは別のボリュームディレクトリを使用するため、インストール済みの拡張機能を認識しません - ポート 4566 の競合:
lstkが管理するコンテナがまだ実行中の可能性があります。まずlstk stopを実行してください - 起動時のエラー:拡張機能のスタックトレースを確認するには、
localstack logsを確認してください - 競合:競合する拡張機能を無効にしてください
- バージョンの問題:拡張機能が使用中の LocalStack バージョンに対応していることを確認してください
- Docker Compose を使用する場合:CLI が適切な場所にインストールできるよう、
LOCALSTACK_VOLUME_DIRをホスト上の LocalStack ボリューム(Linux では~/.cache/localstack、macOS では~/Library/Caches/localstack)に設定してください