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

LocalStack:模拟 AWS 服务以进行本地开发和测试

LocalStack:模拟 AWS 服务以进行本地开发和测试

在生产环境中创建和测试基于云的应用程序可能既耗时又困难,甚至存在风险。这时,区域化开发的重要性就显而易见了。由于本地开发是在开发人员自己的系统上进行的,因此有助于降低成本、简化调试并缩短开发时间。


-> 介绍 LocalStack

文本

LocalStack是目前最好的本地开发工具之一,它基于AWS(亚马逊网络服务)。LocalStack可以创建一个功能齐全的本地AWS平台,用于离线开发和测试我们的云应用和无服务器应用。

本地堆栈易于使用,可在您的本地系统上提供一个测试环境,该环境模拟AWS云服务的 API 和行为。现在,您可以创建和测试AWS应用程序,而无需花费任何费用或访问互联网。

文本

Docker 的重要性

Docker是该基础设施的重要组成部分。Docker是一种开源技术,它通过在操作系统层面进行虚拟化来实现容器化软件分发。

文本

这不仅能确保应用程序在任何环境下都能正常运行(因为每个容器都是独立的,包含所有必要的软件、库和系统工具),还能确保所有操作都在本地进行。Docker提供LocalStack使用的容器化技术用于在本地工作站上模拟AWS云环境。


入门

初始化 Docker

我们需要确保 Docker 运行正常才能启动LocalStack。Docker的启动方式因操作系统而异。

  • macOS :在macOS上,可以通过输入以下命令open --background -a Docker在后台启动 Docker。

  • Linux:Docker 通常以服务的形式部署在Linux 系统sudo service docker start上。可以使用命令

  • Windows:在Windows 系统中,可以通过“开始”菜单或Start-Process -NoNewWindow "C:\Program Files\Docker\Docker\Docker Desktop.exe"PowerShell 等命令初始化 Docker。

启动 Docker 后,验证其是否持续运行至关重要。docker system info可以使用该命令进行验证。如果 Docker 运行正常,该命令应返回有关 Docker 系统的信息。如果 Docker 没有运行,该命令将不会返回任何输出。

如何启动并运行 LocalStack

文本

LocalStack一旦 Docker 启动并运行,即可安装并启动其他组件。但每个组件的安装过程都不同OS

  • 使用该brew install localstack命令,可以使用软件包管理器在MacOSHomebrew上设置 LocalStack

  • sudo apt-get install localstack借助APT软件包管理,可以使用该命令在 Linux 机器上设置 LocalStack。

  • LocalStack软件包管理器适用于Windows 系统,可以使用以下命令进行安装choco install localstack

LocalStack 安装完成后,您可以使用命令启动它localstack start

使用 Shell 脚本实现一切自动化

为了简化操作,我们可以编写一个 shell 脚本来确定操作系统启动 Docker部署 LocalStack启动它。以下脚本必须使用以下命令运行chmod +x localstack.sh &&./localstack.sh

#!/bin/bash

# Function to start Docker and ensure it's running on macOS
start_docker_mac() {
    echo "Starting Docker on macOS..."
    open --background -a Docker
    while ! docker system info > /dev/null 2>&1; do sleep 1; done
    echo "Docker is running."
}

# Function to start Docker and ensure it's running on Linux
start_docker_linux() {
    echo "Starting Docker on Linux..."
    sudo service docker start
    while ! docker system info > /dev/null 2>&1; do sleep 1; done
    echo "Docker is running."
}

# Function to start Docker and ensure it's running on Windows
start_docker_windows() {
    echo "Starting Docker on Windows..."
    Start-Process -NoNewWindow "C:\Program Files\Docker\Docker\Docker Desktop.exe"
    while (!(Test-Connection localhost -count 1)) { Start-Sleep -Seconds 1 }
    echo "Docker is running."
}

# Function to install LocalStack on macOS
install_mac() {
    echo "Installing LocalStack on macOS..."
    brew install localstack
}

# Function to install LocalStack on Linux
install_linux() {
    echo "Installing LocalStack on Linux..."
    sudo apt-get install localstack
}

# Function to install LocalStack on Windows
install_windows() {
    echo "Installing LocalStack on Windows..."
    choco install localstack
}

# Detect the operating system
OS="$(uname)"
case $OS in
  'Linux')
    start_docker_linux
    install_linux
    ;;
  'Darwin') 
    start_docker_mac
    install_mac
    ;;
  'WindowsNT')
    OS='Windows'
    start_docker_windows
    install_windows
    ;;
  *) ;;
esac

# Start LocalStack
localstack start
Enter fullscreen mode Exit fullscreen mode

上面的脚本定义了以下函数:

  • 根据操作系统,要么开始运行 Docker,要么安装 LocalStack。
  • 然后它确定操作系统,并调用与该系统相关的函数。
  • 最后,它激活本地堆栈

请注意,运行此脚本需要您的计算机上已安装 Docker 和必要的包管理器(macOSHomebrewLinux 版Windows。如果尚未安装,您需要在运行此脚本之前进行安装。APTChocolatey

结论

LocalStack 与 Docker 的结合使其成为在 AWS 上进行本地开发的绝佳工具。通过在本地模拟 Amazon Web Services (AWS) 环境,开发人员可以提高工作效率、降低成本,并避免直接在实时云环境中构建软件所带来的风险。

文本

您可以通过编写一个简单的 shell 脚本,自动执行启动 Docker、安装 LocalStack 和运行 LocalStack 的过程,从而更轻松地搭建并运行本地 AWS 云环境。这将帮助您节省时间。

文章来源:https://dev.to/aws-builders/localstack-emulate-aws-services-for-local-development-testing-eoj