mcpField
L
localstack-extensions

localstack-extensions

github.com/localstackクラウド・DevOps1547 回インストール8 週間前に更新
リポジトリ

localstack-extensions について

LocalStack のユーザーと拡張機能の開発者向けに、legacy localstack CLI での拡張機能の管理、設定、独自拡張の開発を説明するガイドです。lstk は拡張機能に対応せず、読み込みには localstack でエミュレーターを起動する必要がある点も示します。

主な機能

  1. 01拡張機能の一覧表示、導入、削除
  2. 02拡張機能の有効化と無効化
  3. 03環境変数による拡張機能の設定
  4. 04独自拡張機能の開発とローカル導入
  5. 05localstack と lstk の制約の説明

活用シーン

  1. 01LocalStack への拡張機能の追加
  2. 02特定バージョンや Git 拡張の導入
  3. 03開発中の独自拡張機能のテスト
  4. 04拡張機能の未読み込みやポート競合の調査

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/localstack/skills --skill localstack-extensions

インストール後、Claude Code で/localstack-extensionsを入力して読み込まれたか確認します。

詳細

LocalStack 拡張機能

LocalStack 拡張機能を管理して、カスタム機能を追加し、サードパーティ製ツールを統合し、LocalStack の機能を拡張します。

lstk は拡張機能をサポートしていません。 lstk extensions コマンド一式はありません。拡張機能のインストールとエミュレーターの起動には、どちらも従来の localstack CLI を使用する必要があります。拡張機能は従来のボリュームにインストールされますが、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)に設定してください

コメント