LocalStack适合需要部署云应用的朋友使用,您可以在软件部署A、API、DynamoDB、Elasticsearch服务等资源,从而更快开发云服务和云应用,软件提供一个模拟框架,可以在自己的电脑上创建测试环境,该环境提供与真实AWS云环境相同的功能和API,您可以运行Lambda函数,将数据存储到DynamoDB表,通过Kinesis流提供事件,将应用程序置于API后面等等。所有这一切都发生在您的本地计算机上,而无需与云对话,轻松在本地执行云服务,软件也支持物联网、Kinesis数据分析、Lambda图层和容器图像、Kafka(MSK)托管流等API,帮助您部署更多云服务功能!
LocalStack软件功能
什么是LocalStack?
LocalStack为开发云应用程序提供了易于使用的测试/模拟框架。它在您的本地计算机上启动了一个测试环境,该环境提供与真实AWS云环境相同的功能和API。
是的,没错-您可以运行Lambda函数,将数据存储到DynamoDB表,通过Kinesis流提供事件,将应用程序置于API后面等等。所有这一切都发生在您的本地计算机上,而无需与云对话。
下图说明了 LocalStack支持的高效开发/测试和部署管道。
1、您的应用程序完全在本地开发人员计算机上开发。LocalStack在本地容器中配置所有必需的“云”资源。
2、更改通常被推送到运行自动化测试的连续集成。LocalStack在连续集成环境中配置了所有必需的“云”资源。
3、一旦所有测试都变为绿色,您就可以进行切换,将应用程序无缝地部署到真实的AWS云环境中。
不用说,这实现了极其高效的开发循环和团队协作。不再繁琐地上传应用程序代码即可运行快速测试。无需再在AWS上的昂贵测试资源上花费任何钱!
LocalStack软件特色
LocalStack-功能齐全的本地AWS云堆栈
离线开发和测试您的云和无应用程序!
LocalStack为开发云应用程序提供了易于使用的测试/模拟框架。
当前,重点主要放在支持AWS云堆栈上。
启用高效的开发和测试循环。数秒之内即可在Docker中本地部署应用程序。
为各种规模的开发团队节省大量成本。无需云基架构。
通过持续集成来提高软件质量。停止推出未经测试的更改。
LocalStack安装方法
安装
LocalStack易于安装且可高度配置。
先决条件
Docker:安装LocalStack的推荐方法是使用Docker
Python:安装localstack命令行界面(CLI)所需
安装
安装LocalStack的最简单方法是通过pip:
pip install localstack
,您可以列出可用的命令:
localstack --
注意:如果localstack成功安装软件包后该命令不可用,请确保在中pip配置了包含二进制文件的文件夹$PATH。
环境设置
要使用P服务,需要使用API密钥进行有效订阅。您的API密钥在订阅页面上列出,可以使用环境变量激活LOCALSTACK_API_KEY。
示例:为了使用API密钥key123,请在您的环境中使用以下命令:
export LOCALSTACK_API_KEY=key123
重要说明:如果要从LocalStack安装中发布任何命令,志或屏幕截图(例如,在Github上或社区Slack频道中报告问题时),请务必确保从输出中隐藏或删除LOCALSTACK_API_KEY变量!
启动
要在本地Docker环境中启动LocalStack平台,请执行以:
SERVICES=... localstack start
环境变量SERVICES是逗号分隔的服务列表,我们建议限制要启动的服务列表(例如SERVICES=lambda,s3,cognito,rds),以保持较低的内存占用并优化能。
在Docker中运行Compose
另外,您也可以使用Docker Compose来启动LocalStack 。以下是docker-compose.yml可以用作起点的示例配置文件(请确保填写LOCALSTACK_API_KEY,并且端口范围与您要启动的服务相对应):
注意:请确保将持久临时文件夹安装/tmp/localstack到容器中,因为启用API密钥缓存是必需的,从而使您可以脱机工作(有关更多详细,请参阅本节)。
配置
有关LocalStack的常规配置选项的列表,请参阅公共Github存储库中的自述文件:https://github.com/localstack/localstack
此外,LocalStack P提供了以下配置,可以将其配置为环境变量:
DNS_ADDRESS:本地DNS应绑定到的IP地址(默认值:)0.0.0.0。可以配置为避免端口冲突(如果DNS已经在localhostport上运行)53。设置为0或false避免完全暴露DNS端口。
DNS_RESOLVE_IP:AWS主机名应解析为透明执行模式的IP地址(默认值:)127.0.0.1。如果您的代码在Docker中运行,则应将其配置为解析为Docker桥网络地址,例如DNS_RESOLVE_IP=172.17.0.1。
DNS_SERVER:后备DNS,用于解析非AWS的DNS名称(默认值:)8.8.8.8。
DNS_LOCAL_NAME_PATTERNS:逗号分隔的正则表达式模式列表,用于DNS名称在本地解析(例如,'.*cloudfnt.net')。可用于将某些主机名列入白名单以解析为本地端点,同时将任何不匹配的AWS主机名解析为其真实DNS条目。
CLOUDFRONT_STATIC_PORTS:是否为每个CloudFnt分配(例如localhost:4511)使用单独的端口,而不是本地可解析的主机名(例如,abc123.cloudfnt.net)。如果您不想使用本地DNS,这可能会很有用。
TP_HOST/ TP_USER/ TP_P/ TP_EMAIL:TP配置(主机,用户名,密码和发送方地址)在平台发送自动化测试的电子邮件时使用(例如,发送Cognito注册确认代码)
ENFORCE_IAM:是否处理客户端请求时执行IAM安全策略(默认:false)
AUTOSTART_UTIL_CONTAINERS:是否自动启动实用程序容器(例如,EMR的Spark / Hadoop,的Presto)
DISABLE_S:标记以禁用匿名使用事件的发送(默认值:)false。(请注意,这将禁用Web仪表板和所有分析功能。)
SERVICE_INSTANCES_PORTS_START- SERVICE_INSTANCES_PORTS_END:正在创建的服务实例启动和结束端口,例如,可将WebSocket的API,RDS实例等(默认值:4510- 4530)。
LocalStack软件优势
LocalStack在本地计算机上启动以下核心Cloud API。
注意:从version开始0.11.0,所有API都通过单一边缘服务公开,默认情况下可在http:// localhost:4566问该边缘服务:
A
API Gateway
CloudFormation
CloudWatch
CloudWatch Logs
DynamoDB
DynamoDB Streams
EC2
Elasticsearch Service
EventBdge (CloudWatch Events)
Firehose
IAM
Kinesis
KMS
Lambda
Redshift
Route53
S3
SecretsMar
SES
SNS
SQS
S
StepFunctions
STS
除上述内容外,LocalStack P版本还支持其他API和高级功能,包括:
Amplify
API Gateway V2 (WebSockets support)
Application AutoScaling
AppSync
Athena
Batch
CloudFnt
CloudTrail
Cognito
ECS/ECR/EKS
ElastiCache
E/Ev2
EMR
Glacier / S3 Select
IAM Secuty Policy Enforcement
IoT
Kinesis Data Analytics
Lambda Layers & Container Images
Mad Streaming for Kafka (MSK)
Store
Neptune Graph DB
QLDB
RDS / Aura Serverless
Timestream
Traner
XRay
Advanced persistence support for most s
Interactive UIs to ma resources
Test report dashboards
...and much, much to come!
近期热门