SuperAPI AI 工具集

floci

部署与运维

查看项目

更新于 10-20 17:12

技能介绍

Floci 是一组本地云模拟器,能够与真实的云线协议通信。floci 命令(floci-cli)负责管理模拟器的生命周期,而原生工具(aws、gcloud、az、oci、SDK、Terraform)则针对模拟器进行资源操作。floci-cli 本身从不创建云资源。

用途

Floci 用于在本地模拟 AWS、GCP、Azure 和 OCI 云环境,方便开发者在不接触真实云的情况下进行开发、调试和测试。它支持通过原生云 CLI 和 SDK 与模拟器交互,确保代码在迁移到真实云时具有较高的兼容性。

主要能力

  • 提供四个云平台的模拟器:AWS(floci)、GCP(floci-gcp)、Azure(floci-az)、OCI(floci-oci)。
  • floci-cli 管理模拟器生命周期:启动、等待健康、导出环境变量、停止并移除容器。
  • 支持通过 Docker 容器运行,也支持 Docker Compose 和 Testcontainers 集成。
  • 提供状态检查、服务列表、日志查看、配置管理和故障诊断等命令。
  • 支持多实例管理(通过 profile),每个实例有独立的容器、端口和资源命名空间。
  • 遵循严格规则:仅使用假凭证,绝不接触真实云;操作前验证端点指向模拟器。

使用方式

  1. 前置检查:确认 floci-cli 已安装(floci version)且 Docker 可达(docker info)。若缺少 floci,可运行安装脚本 scripts/install-floci.sh(Windows 使用 iwr https://floci.io/install.ps1 | iex)。
  2. 生命周期命令(以 AWS 为例):
    • 启动:floci aws start --detach(拉取镜像并启动)
    • 等待健康:floci aws wait --timeout 2m
    • 导出环境变量:eval "$(floci aws env -o text)"
    • 使用原生工具操作资源(如 aws s3 ls)
    • 停止并移除:floci aws stop --remove
  3. 对于 Azure 和 OCI,需先运行一次性设置命令:floci az setup 和 floci oci setup。
  4. 使用多个实例时,通过 --profile <name> 指定配置,例如创建 profile 后启动并导出环境变量。

适用场景

  • 本地开发与调试云应用,无需真实云凭证。
  • 集成测试,特别是使用 Testcontainers 的场景(AWS 支持 Java、Node、Python、Go 和 .NET;Azure 仅支持 Java;GCP 和 OCI 暂无 Testcontainers 模块)。
  • 需要 Docker Compose 或容器化应用连接模拟器的场景。
  • CI/CD 管道中模拟云服务。

限制

  • 各服务的覆盖范围不同:部分为完整引擎,部分为进程内模拟,部分仅返回预设响应。使用前需检查服务是否启用并阅读对应文档。
  • 状态默认是临时的,除非使用 --persist <dir> 或 profile 中配置 persistDir。
  • 重启会移除并重新创建容器,Azure 上需重新运行 floci az setup。
  • floci-cli 不安装 Docker,也不安装原生云 CLI。
  • Windows 上辅助脚本为 bash,需直接运行 floci 命令。
  • 无原生二进制文件的平台需下载 floci.jar 并运行(需 Java 25+)。