LocalStack 如何配置 AWS 沙箱账户让集成测试针对真实云运行? LocalStack 如何配置 AWS 沙箱账户让集成测试针对真实云运行【免费下载链接】localstack A fully functional local AWS cloud stack. Develop and test your cloud Serverless apps offline项目地址: https://gitcode.com/GitHub_Trending/lo/localstack在 LocalStack 仓库中开发或维护测试时集成测试默认跑在本地 LocalStack 实例上。当你想验证测试能否在真实 AWS 上通过时需要把测试目标切换到 AWS Cloud。官方测试文档建议为此专门使用一个 AWS 沙箱账户sandbox account避免测试误打到生产账户上——测试创建的资源队列、桶、函数等会真实产生计费。本文依据 integration-tests 文档 给出完整路径创建沙箱账户、配置 CLI profile、设置环境变量把测试指向真实 AWS。前置条件一个可以管理 IAM 的 AWS 账户、已安装 AWS CLI、可运行 LocalStack 仓库的 pytest 测试套件。在 IAM 中创建沙箱账户以下步骤来自文档 Creating an AWS sandbox account 小节在 AWS 管理控制台中完成使用具有AWSAdministratorAccess的凭证登录你的 AWS 沙箱账户。在顶部搜索栏输入IAM进入 IAM 服务。进入Users点击Add Users创建新用户用户名填localstack-testing不要勾选 Provide user access to the AWS Management Console 选项——该用户只用 API 访问。选择 Attach existing policies directly。勾选AdministratorAccess然后连续点击 Next 直到创建完成。在IAM/Users中找到刚创建的用户进入Security Credentials标签页在Access Keys区域点击Create access key。选择Local code选项并勾选 I understand the above recommendation and want to proceed to create an access key。点击Create access key立即复制 Access Key ID 和 Secret access keySecret 只显示这一次。配置 CLI profile 并验证凭证拿到 Access Key 后为沙箱账户创建一个独立的 CLI profile文档示例使用ls-sandboxaws configure --profile ls-sandbox按提示依次输入 Access Key ID 和 Secret access key。然后运行下面的命令确认 profile 配置正确能正常解析出身份aws sts get-caller-identity --profile ls-sandbox文档同时给出了配置完成后的文件形态可用来对照检查。~/.aws/credentials中your-key-id与your-secret-key替换为第 8 步复制到的真实值[ls-sandbox] aws_access_key_id your-key-id aws_secret_access_key your-secret-key~/.aws/config中为对应 profile 设置 region文档示例值为eu-central-1可按需修改也可追加其他 AWS client 配置项[ls-sandbox] regioneu-central-1 # .... you can add additional configuration options for AWS clients here设置环境变量让测试指向 AWS Cloud核心开关是环境变量TEST_TARGETAWS_CLOUD设置后测试框架中的 boto client 会自动配置为指向 AWS 而不是 LocalStack。同时把AWS_PROFILE指向上面创建的 profile 名。文档给出的环境配置示例如下示例中DEBUG1用于开启 debug 日志TEST_DISABLE_RETRIES_AND_TIMEOUTS1为文档给出的辅助开关export DEBUG1 export TEST_DISABLE_RETRIES_AND_TIMEOUTS1 export TEST_TARGETAWS_CLOUD export AWS_DEFAULT_REGIONus-east-1 export AWS_PROFILEls-sandbox设置后按常规方式运行测试套件例如TEST_PATHtests/integration make test或在虚拟环境中直接python -m pytest --log-cli-levelINFO tests/integration也可以把路径缩小到单个文件甚至单个测试类例如TEST_PATHtests/integration/docker_utils/test_docker.py::TestDockerClient make test。针对真实 AWS 运行时文档强调的约束用 client fixtures如aws_client或其他资源工厂 fixture 来创建资源而不是从aws_stack.py的方法这些 fixture 在TEST_TARGETAWS_CLOUD下自动改用 AWS profile 凭证。无论测试成功还是失败都要确保创建的 AWS 资源被清理fixture 的 try/finally 机制、工厂 fixture 等。针对 AWS 测试可能还需要额外的 role 和 policy遇到权限类报错时检查沙箱账户的授权。可选分支记录快照与强制启动本地实例快照测试可选。如果测试在 AWS 上稳定通过后可以记录快照用于 parity testing加参数--snapshot-update或环境变量SNAPSHOT_UPDATE1并设置TEST_TARGETAWS_CLOUD运行响应会被写入testfile-name.snapshot.json。后续不带该参数、不设置AWS_CLOUD目标时测试会拿 LocalStack 的响应与快照对比。详细写法见 Parity Testing 文档。强制同时启动本地实例可选。TEST_TARGETAWS_CLOUD下默认不会启动 LocalStack 实例。若某个测试需要同时访问本地实例可再设置TEST_FORCE_LOCALSTACK_START1。注意此时aws_clientfixture 仍指向 AWS需要自己用aws_client_factory构造指向本地实例的 client文档示例local_client aws_client_factory( endpoint_urlfhttp://{localstack_host()}, aws_access_key_idtest, aws_secret_access_keytest, )收尾标记已验证的测试当测试在 AWS 上稳定通过后按文档要求为它添加 pytest 标记markers.aws.validated表明该集成已经过真实 AWS 验证。这个标记也是tests/aws/**/test_*.py中每个测试必须恰好带有一个 marker 的规则的一部分marker 定义见 marking.py。限制与边界沙箱账户上的测试会真实创建并计费 AWS 资源务必确认测试的清理逻辑文档只保证AdministratorAccess这一授权路径具体服务若需要额外 role/policy需按报错自行补充。【免费下载链接】localstack A fully functional local AWS cloud stack. Develop and test your cloud Serverless apps offline项目地址: https://gitcode.com/GitHub_Trending/lo/localstack创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

相关新闻

最新新闻

SELinux、防火墙与NFS协同实战:从安全原理到故障排查

SELinux、防火墙与NFS协同实战:从安全原理到故障排查

1. SELinux并非非要关闭:先弄清它到底在保护什么我刚接触Linux服务器运维那阵子,遇到SELinux的第一反应和大多数人一样——直接改配置文件把它关掉。当时觉得这玩意儿就是个拦路虎,明明服务配置没问题,它就是不让访问,…

2026/9/9 19:37:15
从驻极体麦克风到STM32:声音传感器电路设计与调校全解析

从驻极体麦克风到STM32:声音传感器电路设计与调校全解析

简介:面向电子设计学习者与硬件开发者的声音传感器原理图及应用说明资料包,旨在帮助理解声音传感器从声波采集到电信号输出的完整链路。内容涵盖电容式、压电式与MEMS麦克风的工作原理,语音识别、噪声监测、安防系统、医疗设备与工业故障诊断…

2026/9/9 19:37:15
lazygit 如何配置 editPreset 让 e 键按行号打开外部编辑器

lazygit 如何配置 editPreset 让 e 键按行号打开外部编辑器

lazygit 如何配置 editPreset 让 e 键按行号打开外部编辑器 【免费下载链接】lazygit simple terminal UI for git commands 项目地址: https://gitcode.com/GitHub_Trending/la/lazygit lazygit 里有两个打开文件的命令:o 是“open”,相当于在文…

2026/9/9 19:37:15
Lucky网关集成Coraza WAF与OWASP CRS:规则实战与性能调优指南

Lucky网关集成Coraza WAF与OWASP CRS:规则实战与性能调优指南

1. 为什么要在自己的网关里养一套WAF规则集 1.1 从“告警一堆”到“裸奔”的真实处境 先说个真实经历。之前我们把服务挂在公网,每天安全扫描的告警堆成山,有扫路径的、有试登录的、有往上怼乱七八糟参数的。当时我们用的还只是网关自带的基础访问日志&…

2026/9/9 19:37:15
软件测试工程师必备技能:从测试思维到自动化与性能实战

软件测试工程师必备技能:从测试思维到自动化与性能实战

1. 测试思维:从“找茬”到“质量守护”的底层逻辑转换我在这个行业待了十来年,带过不少新人,也面试过几百个测试工程师。我经常问候选人一个问题:你觉得测试的核心价值是什么?十有八九会回答“找Bug”。这个答案没错&a…

2026/9/9 19:37:15
STM32电磁循迹小车完整代码:PID调参、蓝牙遥控与定圈停止实现

STM32电磁循迹小车完整代码:PID调参、蓝牙遥控与定圈停止实现

简介:一份STM32电磁循迹小车完整代码包,面向嵌入式初学者与智能车竞赛爱好者,提供带详细注释的最终方案,包含蓝牙遥控、测线路长度、定圈停止等附加功能。代码基于库函数版例程,覆盖STM32初始化配置、霍尔传感器数据读…

2026/9/9 19:32:14