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. 05说明 localstack 与 lstk 的限制

适用场景

  1. 01为 LocalStack 添加扩展功能
  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_ 前缀。

故障排除

  • 扩展未加载:确认你使用 localstack start 而非 lstk start 启动了模拟器——lstk 使用不同的卷目录,因此无法看到已安装的扩展
  • 端口 4566 冲突:可能仍有由 lstk 管理的容器在运行;请先运行 lstk stop
  • 启动时出错:检查 localstack logs 中的扩展堆栈跟踪
  • 冲突:禁用冲突的扩展
  • 版本问题:确保扩展与当前 LocalStack 版本兼容
  • Docker Compose 用户:将 LOCALSTACK_VOLUME_DIR 指向主机上的 LocalStack 卷(Linux 上为 ~/.cache/localstack,macOS 上为 ~/Library/Caches/localstack),以便 CLI 将扩展安装到正确的位置

评论

支持 Markdown