发布于 2026-01-06 0 阅读
0

使用 LocalStack 在本地配置 AWS S3 存储桶

使用 LocalStack 在本地配置 AWS S3 存储桶

LocalStack是一个强大的工具,可以在本地系统上模拟 AWS 服务。您可以CLI像在云端一样运行命令和 Terraform 脚本。

在这篇简短的介绍中,我将向您展示如何设置 LocalStack 并通过 CLI 命令和 Terraform 启动 S3 实例。 

安装要求:

  • Python
  • 管道
  • Docker
  • Terraform

安装

pip install localstack

创业公司

在开始运行 localstack 之前,请确保 Docker 服务已启动并正在运行。

了解如何使用 DockerDesktop 在本地创建容器

从容器中以 Docker 模式启动 LocalStack

localstack 启动

检查服务状态

% localstack status services

┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ Service                  ┃ Status      ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ acm                      │ ✔ available │
│ apigateway               │ ✔ available │
│ cloudformation           │ ✔ available │
│ cloudwatch               │ ✔ available │
│ config                   │ ✔ available │
│ dynamodb                 │ ✔ available │
│ dynamodbstreams          │ ✔ available │
│ ec2                      │ ✔ available │
│ es                       │ ✔ available │
│ events                   │ ✔ available │
│ firehose                 │ ✔ available │
│ iam                      │ ✔ available │
│ kinesis                  │ ✔ available │
│ kms                      │ ✔ available │
│ lambda                   │ ✔ available │
│ logs                     │ ✔ available │
│ opensearch               │ ✔ available │
│ redshift                 │ ✔ available │
│ resource-groups          │ ✔ available │
│ resourcegroupstaggingapi │ ✔ available │
│ route53                  │ ✔ available │
│ route53resolver          │ ✔ available │
│ s3                       │ ✔ available │
│ s3control                │ ✔ available │
│ secretsmanager           │ ✔ available │
│ ses                      │ ✔ available │
│ sns                      │ ✔ available │
│ sqs                      │ ✔ available │
│ ssm                      │ ✔ available │
│ stepfunctions            │ ✔ available │
│ sts                      │ ✔ available │
│ support                  │ ✔ available │
│ swf                      │ ✔ available │
└──────────────────────────┴─────────────┘
Enter fullscreen mode Exit fullscreen mode

container现在您应该可以在 DockerDesktop 控制面板上看到 localstack正在运行。

s3 aws localstack


通过 AWS CLI 创建 S3

让我们进入 localstack 容器,看看有哪些服务正在运行。

检查 AWS CLI 是否正在运行
localstack 容器

添加 AWS 配置文件

aws configure --profile default

Enter following values
Access key/Secret : test
Region: eu-west-2
profile : you can leave it blank`
Enter fullscreen mode Exit fullscreen mode

检查配置:$ aws configure list

aws 配置

创建 S3 存储桶。
我们将部署到 localhost:4566。

aws s3 mb s3://my-bucket --endpoint-url http://localhost:4566
make_bucket: my-bucket

Enter fullscreen mode Exit fullscreen mode

通过 Terraform 创建 S3

请确保 Terraform 已在您的系统上运行。

% terraform --version
Terraform v1.2.2
on darwin_arm64
Enter fullscreen mode Exit fullscreen mode

现在你可以跟着我的步骤一步步操作,或者从我的代码库中查看这段代码:
使用 Terraform 在 LocalStack 上部署 S3。

是时候做一些基础设施即代码(IaC)了。

main.tf

resource "aws_s3_bucket" "s3-localstack" {
  bucket = "my-bucket-1"
}
Enter fullscreen mode Exit fullscreen mode

provider.tf

provider "aws" {
  access_key = "test"
  secret_key = "test"
  region     = "us-east-1"

  skip_credentials_validation = true
  skip_requesting_account_id  = true
  skip_metadata_api_check     = true
  s3_use_path_style           = true 

  endpoints {
    s3 = "http://localhost:4566"
  }
}

Enter fullscreen mode Exit fullscreen mode

运行常规的Terraform 命令

初始化工作目录:terraform init

计划变更,请核实:terraform plan

应用更改:terraform apply

就是这样

检查哪些服务正在运行


 

% localstack status services

┏━━━━━━━━━━━━━━━━━━━━━━━━━━┳━━━━━━━━━━━━━┓
┃ Service                  ┃ Status      ┃
┡━━━━━━━━━━━━━━━━━━━━━━━━━━╇━━━━━━━━━━━━━┩
│ acm                      │ ✔ available │
│ apigateway               │ ✔ available │
│ cloudformation           │ ✔ available │
│ cloudwatch               │ ✔ available │
│ config                   │ ✔ available │
│ dynamodb                 │ ✔ available │
│ dynamodbstreams          │ ✔ available │
│ ec2                      │ ✔ available │
│ es                       │ ✔ available │
│ events                   │ ✔ available │
│ firehose                 │ ✔ available │
│ iam                      │ ✔ available │
│ kinesis                  │ ✔ available │
│ kms                      │ ✔ available │
│ lambda                   │ ✔ available │
│ logs                     │ ✔ available │
│ opensearch               │ ✔ available │
│ redshift                 │ ✔ available │
│ resource-groups          │ ✔ available │
│ resourcegroupstaggingapi │ ✔ available │
│ route53                  │ ✔ available │
│ route53resolver          │ ✔ available │
│ s3                       │ ✔ running   │--> here we are
│ s3control                │ ✔ available │
│ secretsmanager           │ ✔ available │
│ ses                      │ ✔ available │
│ sns                      │ ✔ available │
│ sqs                      │ ✔ available │
│ ssm                      │ ✔ available │
│ stepfunctions            │ ✔ available │
│ sts                      │ ✔ available │
│ support                  │ ✔ available │
│ swf                      │ ✔ available │
└──────────────────────────┴─────────────┘
Enter fullscreen mode Exit fullscreen mode

请继续测试您的脚本。
谢谢。

文章来源:https://dev.to/navedrizv/setup-aws-s3-bucket-locally-with-localstack-3n4o