跳转至

LocalStack

LocalStack 是一个可以在本地运行的云服务([[AWS 云服务平台]])模拟器。

LocalStack 提供云开发者工具,可以加速和简化测试和开发流程。

快速上手

multipass launch docker

docker run --rm -it -p 0.0.0.0:4566:4566 -p 4510-4559:4510-4559 localstack/localstack

open http://$(multipass exec docker -- hostname -I | awk '{print $1}'):4566/health

问题

在 [[Multipass]] 构建的 [[Docker]] 环境中启动 [[LocalStack]],使用 LocalStack Cockpit 时会遇到 Docker not available 的报错。 LocalStack Cockpit 默认使用 sdkDockerClientDOCKER_HOST 为 Unix Domain,宿主机和虚拟机间无法通信。 可以修改 [[LocalStack]] 配置 LEGACY_DOCKER_CLIENT,好像没有用。

LocalStack Cockpit 有点鸡肋,目前只能查看 [[LocalStack]] 状态。

特别注意, 容器名称要为 localstack_main

命令行

详见 AWS Command Line Interface

pip install awscli awscli-local

配置

export AWS_ACCESS_KEY_ID=test
export AWS_SECRET_ACCESS_KEY=test
export DEFAULT_REGION=cn-north-1
export LOCALSTACK_HOST=localhost
complete -C '/opt/homebrew/bin/aws_completer' awslocal
aws configure --profile default

使用

命令格式: aws <command> <subcommand> [options and parameters]

AWS 服务

见 [[AWS 云服务平台]],详见 AWS Service Feature Coverage | Docs (localstack.cloud)

S3

# open http://localhost:4566/my-bucket/index.html

# open http://s3.localhost.localstack.cloud:4566/my-bucket/index.html

open http://my-bucket.s3.localhost.localstack.cloud:4566/index.html

详见 DNS Server | Docs (localstack.cloud)

CDK

open https://2gtnmgnupp.execute-api.localhost.localstack.cloud:4566/prod/

TerraformLocal

pip install terraform-local

问题

Creating EC2 via terraform throws InvalidParameterValue: Value (disableApiStop)

terraform {
  required_providers {
    aws = {
      source  = "hashicorp/aws"
      version = "4.18.0"
    }
  }
}

原理剖析

配置详解

工作原理

![[localstack.png]]

资源


最后更新: September 10, 2023

评论