fakecloud AWS模拟器配置参考:CLI标志与环境变量完整清单(速查手册)
【免费下载链接】fakecloud
Free, open-source AWS emulator. LocalStack alternative: 107 services, 7,657 operations, true 100% Smithy conformance (258,545/258,545 variants pass). No account, no auth token, no paid tier.
fakecloud是一款免费、开源的 AWS 模拟器(LocalStack 替代方案),单机即可模拟 107 个 AWS 服务、7,657 个操作,无需账号、无需鉴权 token、无付费层级。本文是 fakecloud 的完整配置速查手册,按场景分组整理全部 CLI 标志(flags)与环境变量,帮助你快速完成安装、启动与调优,随查随用。
📌 先懂规则:fakecloud 配置怎么生效
在动手之前,只需记住三条规则:
- CLI 标志优先:当标志和环境变量同时设置时,标志生效。
- 一一对应:几乎所有 CLI 标志都有对应的
FAKECLOUD_前缀环境变量,便于 Docker / CI 场景注入。 - 默认即可用:零配置直接运行
fakecloud即可启动(默认0.0.0.0:4566、us-east-1、内存存储),安全类特性默认全部关闭。
📖 标志定义源码:crates/fakecloud-server/src/cli.rs;官方文档:website/content/docs/reference/configuration.md
🧭 基础连接配置:地址、区域与日志
最常用的四个基础标志,决定 fakecloud 监听哪里、以什么身份运行:
| 标志 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
--addr | FAKECLOUD_ADDR | 0.0.0.0:4566 | 监听地址与端口 |
--region | FAKECLOUD_REGION | us-east-1 | 对外宣称的 AWS 区域 |
--account-id | FAKECLOUD_ACCOUNT_ID | 123456789012 | 使用的 AWS 账号 ID |
--log-level | FAKECLOUD_LOG | info | 日志级别(trace/debug/info/warn/error) |
# 只绑定本机 fakecloud --addr 127.0.0.1:4566 # 换区域与账号 fakecloud --region eu-west-1 --account-id 999999999999💾 存储与持久化配置:状态如何保存
| 标志 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
--storage-mode | FAKECLOUD_STORAGE_MODE | memory | memory全内存;persistent镜像状态到磁盘 |
--data-path | FAKECLOUD_DATA_PATH | — | 持久化目录,启用persistent时必填 |
--s3-cache-size | FAKECLOUD_S3_CACHE_SIZE | 268435456(256 MiB) | 持久化模式下 S3 对象内容的内存 LRU 缓存(纯字节数) |
--dynamodb-import-path | FAKECLOUD_DYNAMODB_IMPORT_PATH | — | 启动时批量加载单个 AWS 格式 DynamoDB 导出 |
--dynamodb-import-describe-table | FAKECLOUD_DYNAMODB_DESCRIBE_TABLE | — | 配合上一项,提供表结构的 JSON 文件 |
--dynamodb-import-dir | FAKECLOUD_DYNAMODB_IMPORT_DIR | — | 从根目录批量加载多张表的导出 |
# 启用持久化存储 fakecloud --storage-mode persistent --data-path /var/lib/fakecloud📎 持久化细节见 website/content/docs/reference/persistence.md;DynamoDB 启动导入见 website/content/docs/services/dynamodb.md。
🔐 安全相关配置:SigV4 验签与 IAM 模式
| 标志 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
--verify-sigv4 | FAKECLOUD_VERIFY_SIGV4 | false | 加密学验证 SigV4 签名,非法签名拒绝为SignatureDoesNotMatch |
--iam | FAKECLOUD_IAM | off | IAM 身份策略评估模式:off/soft/strict |
--iam三种模式的区别:
off(默认):策略只存储、不评估;soft:评估并输出审计日志,但放行请求;strict:评估并直接返回AccessDeniedException。
⚠️ 两种模式下,保留的
test/test根身份始终绕过校验。详见 website/content/docs/reference/security.md。
🐳 实例凭证与 IMDS:让应用不改代码
这一组标志让在容器/EC2 内运行的应用无需改代码就能走通 AWS SDK 的默认凭证链:
| 标志 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
--credentials-role-arn | FAKECLOUD_CREDENTIALS_ROLE_ARN | arn:aws:iam::<account>:role/fakecloud | /_fakecloud/credentials端点发放凭证所对应的角色 ARN |
--imds-instance-id | FAKECLOUD_IMDS_INSTANCE_ID | 稳定的合成i-… | EC2 实例元数据服务(IMDS,/latest/*)报告的实例 ID |
--imds-link-local | FAKECLOUD_IMDS_LINK_LOCAL | false | 额外绑定169.254.169.254:80(IMDS)与169.254.170.2:80(ECS 凭证)等链本地地址,需 root 运行 |
📎 完整指南见 website/content/docs/guides/instance-credentials.md。
🌐 DNS 解析器配置:Route 53 记录真实生效
开启后,fakecloud 会运行一个真实 DNS 解析器,把你在 Route 53 中创建的记录解析到本地目标:
| 标志 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
--dns | FAKECLOUD_DNS | false | 启用 DNS 解析器(A/AAAA/CNAME/MX/TXT等) |
--dns-addr | FAKECLOUD_DNS_ADDR | 0.0.0.0:53 | 解析器绑定地址(UDP + TCP);非 root 建议127.0.0.1:15353 |
--dns-upstream | FAKECLOUD_DNS_UPSTREAM | /etc/resolv.conf首个 nameserver,否则8.8.8.8:53 | 非本地域名的上游转发目标 |
📎 用法示例见 website/content/docs/guides/dns.md。
📊 Service Quotas 强制配置:配额约束开关
| 标志 | 环境变量 | 默认值 | 说明 |
|---|---|---|---|
--enforce-quotas | FAKECLOUD_ENFORCE_QUOTAS | false | 强制全部可检查的配额 |
--enforce-quota | FAKECLOUD_ENFORCE_QUOTA | 无 | 单条强制,格式SERVICE_CODE/QUOTA_CODE(如vpc/L-0EA8095F),可重复;环境变量用逗号分隔 |
--ignore-quota | FAKECLOUD_IGNORE_QUOTA | 无 | 单条豁免,即使已开--enforce-quotas,可重复 |
--quota-requests | FAKECLOUD_QUOTA_REQUESTS | auto | 配额提升请求的决定方式:auto(提交时自动批准)或manual(留待人工审批) |
fakecloud --enforce-quotas \ --enforce-quota vpc/L-2AFB9258 \ --ignore-quota vpc/L-0EA8095F \ --quota-requests manual📎 配额强制细节见 website/content/docs/services/servicequotas.md。
⚙️ 容器与 Kubernetes 后端环境变量
以下变量仅能通过环境变量设置(无对应 CLI 标志),控制 Lambda、ECS、RDS、ElastiCache、EC2 等容器支撑型服务的执行后端:
| 环境变量 | 默认值 | 说明 |
|---|---|---|
FAKECLOUD_CONTAINER_CLI | 自动探测 | 容器 CLI(docker或podman),自动探测顺序为 docker → podman |
FAKECLOUD_CONTAINER_BACKEND | 未设置(docker) | 全局执行后端,设为k8s则以原生 K8s Pod 运行 |
FAKECLOUD_LAMBDA_BACKEND | 继承全局 | 仅 Lambda 的后端覆盖(k8s/docker) |
FAKECLOUD_ECS_BACKEND/FAKECLOUD_RDS_BACKEND/FAKECLOUD_ELASTICACHE_BACKEND/FAKECLOUD_EC2_BACKEND | 继承全局 | 对应服务的后端覆盖 |
FAKECLOUD_EC2_DEFAULT_IMAGE | amazonlinux:2023 | EC2 实例启动的基础容器镜像 |
FAKECLOUD_ECR_REGISTRY_HOST | 127.0.0.1 | 容器引擎拉取 fakecloud-ECR 镜像的主机 |
FAKECLOUD_K8S_NAMESPACE | default | K8s 后端创建 Pod 的命名空间 |
FAKECLOUD_K8S_SELF_URL | — | 集群内 fakecloud Service 的 URL,K8s 后端必填 |
FAKECLOUD_K8S_PULL_SECRET/FAKECLOUD_K8S_NODE_SELECTOR/FAKECLOUD_K8S_TOLERATIONS/FAKECLOUD_K8S_ANNOTATIONS | 未设置 | Pod 拉取密钥、节点选择器、容忍度、注解(均支持FAKECLOUD_<SERVICE>_K8S_*按服务覆盖) |
📎 Kubernetes 后端完整指南见 website/content/docs/guides/kubernetes-backend.md。
🛠️ 高级调优环境变量
| 环境变量 | 默认值 | 说明 |
|---|---|---|
FAKECLOUD_LAMBDA_MAX_CONCURRENCY | 10 | 每个 Lambda 函数保留的最大暖实例数 |
FAKECLOUD_MAX_REQUEST_BODY_BYTES | 1073741824(1 GiB) | 缓冲请求体上限,超出返回 413;流式路由(S3 上传、ECR blob)不受限 |
FAKECLOUD_EXTERNAL_URL | 未设置 | 渲染进 SQSQueueUrl等返回值的外部基础 URL,适配 compose/远程访问 |
FAKECLOUD_PERSIST_DB_VOLUMES/FAKECLOUD_PERSIST_EC2_VOLUMES | 持久化模式默认开 | 用持久卷为 RDS 数据目录 / EC2 实例目录做持久化 |
FAKECLOUD_EC2_INSTANCE_DATA_DIR | /var/lib/fakecloud/ec2 | EC2 实例内由持久卷支撑的目录 |
FAKECLOUD_S3_EAGER_DELIVERY | 关闭 | 设为1可同步投递 S3 访问日志与清单报告 |
FAKECLOUD_CLOUDFRONT_DISABLE_DATAPLANE | 开启数据面 | 设为1关闭进程内 CloudFront 数据面 |
FAKECLOUD_EC2_SG_ENFORCEMENT | 关闭 | 设为1启用 EC2 安全组强制(需CAP_NET_ADMIN,见 Dockerfile) |
FAKECLOUD_IN_CONTAINER | — | 官方镜像内部使用,标识 fakecloud 运行在容器中 |
⚡ 快速上手示例
# 最简启动(零配置) fakecloud # 详细日志 FAKECLOUD_LOG=trace fakecloud # 本机回环 + 指定区域 fakecloud --addr 127.0.0.1:4566 --region eu-central-1 # 完整持久化 + 安全校验 fakecloud --storage-mode persistent --data-path /var/lib/fakecloud \ --verify-sigv4 --iam soft📎 Docker 启动方式参考 docker-compose.yml 与 examples/docker-compose.yml。
⚠️ 常见坑点与排查清单
--storage-mode persistent必须搭配--data-path,否则启动直接报错。- DynamoDB 导入标志互斥:
--dynamodb-import-path(+--dynamodb-import-describe-table)与--dynamodb-import-dir不能同时使用。 - 同一配额不能既强制又豁免:同时出现在
--enforce-quota和--ignore-quota会启动失败。 - 未知或不可强制的配额代码会阻止启动,报错信息含
unknown quota/not enforceable,按提示核对SERVICE_CODE/QUOTA_CODE。 - 绑定 53 端口需要 root:非 root 场景请将
--dns-addr改为127.0.0.1:15353之类的端口。 - 优先级记牢:命令行标志 > 环境变量 > 默认值,排查配置冲突时按此顺序。
📁 源码与文档路径速查
- CLI 标志与环境变量定义:crates/fakecloud-server/src/cli.rs
- 配置参考文档:website/content/docs/reference/configuration.md
- 持久化模式:website/content/docs/reference/persistence.md
- 安全(SigV4 / IAM):website/content/docs/reference/security.md
- 实例凭证 / IMDS:website/content/docs/guides/instance-credentials.md
- DNS 解析器:website/content/docs/guides/dns.md
- 服务配额:website/content/docs/services/servicequotas.md
- Kubernetes 后端:website/content/docs/guides/kubernetes-backend.md
收藏本页,下次配置 fakecloud 时按分组对照即可,一分钟找到你要的标志或环境变量。✅
【免费下载链接】fakecloud
Free, open-source AWS emulator. LocalStack alternative: 107 services, 7,657 operations, true 100% Smithy conformance (258,545/258,545 variants pass). No account, no auth token, no paid tier.
相关推荐
Deltafin配置速查表:K3_DEV、K3_SPINE、K3_DSPARK等关键环境变量与CLI标志完整清单
Deltafin配置速查表:K3_DEV、K3_SPINE、K3_DSPARK等关键环境变量与CLI标志完整清单 Deltafin 是一个在单台设备上运行完整
Loushang参考手册:CLI参数、斜杠命令、环境变量与模型目录终极速查清单
Loushang参考手册:CLI参数、斜杠命令、环境变量与模型目录终极速查清单 Loushang 是一个 Python 编写的 AI 原生编码代理框架(AI n
Floci 环境变量完整参考:以 `FLOCI_*` 全量配置 AWS 本地模拟器
Floci 环境变量完整参考:以 FLOCI_ 全量配置 AWS 本地模拟器 Floci 是一款轻量、免费、开源的 AWS 本地模拟器(AWS Local Em
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考