1. 项目概述与核心价值

如果你正在寻找一种能让你在几分钟内,就把一个基于OpenClaw的AI机器人部署到AWS云上的方法,并且希望这个部署过程既安全又省心,那么 openclaw-aws 这个CLI工具就是为你准备的。我最近在搭建一个需要7x24小时运行、处理自动化任务的AI助手时,发现了这个宝藏项目。它完美地解决了我从本地开发到云端稳定部署的最后一公里问题,尤其是它“零公网暴露”的安全设计理念,让我这个对云安全有强迫症的人感到非常舒适。

简单来说, openclaw-aws 是一个命令行工具,它的核心工作就是帮你把OpenClaw机器人一键部署到AWS的EC2虚拟机上。但它的“一键”背后,隐藏了很多精心的设计:它不开放任何SSH端口,完全通过AWS Systems Manager(SSM)进行管理和访问;它使用最新的Ubuntu LTS系统;并且默认启用磁盘加密。你不需要是一个AWS专家,甚至不需要知道VPC、安全组这些复杂概念的具体配置,工具会通过交互式向导帮你搞定一切。对于独立开发者、小团队或者任何想快速拥有一个云端AI执行环境的人来说,这极大地降低了使用门槛和心智负担。接下来,我将结合我的实际部署经验,为你拆解这个工具从安装、配置到日常运维的全过程,并分享一些官方文档里没写的实操细节和避坑指南。

2. 环境准备与工具链深度解析

在真正运行 npx openclaw-aws init 之前,有几个前置条件需要仔细准备。这一步的扎实程度,直接决定了后续部署过程是丝般顺滑还是步步惊心。

2.1 Node.js版本管理:为什么必须是22+?

项目明确要求Node.js 22或更高版本。这不仅仅是一个随意的数字,背后有充分的理由。Node.js 22引入了一些重要的V8引擎更新和ES模块的稳定化改进,这些改进对于现代CLI工具的构建、依赖解析以及运行时性能都有积极影响。 openclaw-aws 本身及其依赖的AWS CDK库可能利用了这些新特性。使用旧版本(如Node 18或20)可能会导致无法预料的安装错误或运行时异常。

我的建议是, 绝对不要使用系统自带的、版本陈旧的Node.js 。最佳实践是使用 nvm (Node Version Manager)进行版本管理。以下是我的标准操作流程:

# 1. 安装或确保nvm已就绪
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.7/install.sh | bash
# 安装后,重新打开终端或执行 source ~/.bashrc (或 ~/.zshrc)

# 2. 安装并切换到Node.js 22的LTS版本
nvm install 22
nvm use 22

# 3. 验证版本
node --version # 应显示 v22.x.x
npm --version

注意 :如果你在团队中协作,或者需要在多台机器上部署,强烈建议在项目根目录下创建一个 .nvmrc 文件,内容写上 22 。这样,其他成员只需运行 nvm use 就能自动切换到正确的版本,避免环境不一致带来的问题。

2.2 AWS凭证配置:SSO与传统IAM用户的抉择

这是整个流程中最关键也最容易出错的一环。工具要求你的本地环境已经通过AWS CLI完成了身份认证。它支持两种主流方式: AWS SSO 和传统的 IAM用户访问密钥 。官方推荐使用SSO,这是有深层次原因的。

为什么推荐SSO?

  1. 安全性 :SSO通过临时凭证工作,这些凭证默认有效期为一小时(可配置)。即使凭证意外泄露,其危害窗口也大大缩短。而传统的Access Key和Secret Key是长期有效的,一旦泄露,攻击者可以长期控制你的资源。
  2. 便捷性 :对于拥有多个AWS账户(如开发、测试、生产)的组织,SSO可以让你用一个身份(如公司邮箱)无缝切换,无需管理多套密钥。
  3. 审计性 :SSO登录操作本身可以被记录和审计。

SSO配置实操步骤: 假设你的公司已经设置了AWS IAM Identity Center(原SSO),并为你分配了权限集和账户访问权限。

# 1. 配置SSO(首次设置)
aws configure sso

CLI会交互式地引导你:

  • SSO会话名称 :输入一个易记的名字,如 my-company-sso
  • SSO启动URL :输入公司提供的门户URL,例如 https://mycompany.awsapps.com/start
  • SSO区域 :选择Identity Center所在的区域,通常是 us-east-1
  • 选择账户和角色 :CLI会列出你有权访问的账户和角色,用键盘上下键选择。
  • CLI默认客户端区域 :选择你计划部署OpenClaw的区域,例如 us-east-1
  • CLI默认输出格式 :选择 json

配置成功后,AWS CLI会自动打开浏览器让你完成登录授权。之后,你的凭证信息会存储在 ~/.aws/sso/cache/ 目录下。

传统IAM用户配置(备选方案): 如果你只有单个AWS账户或个人账户,也可以使用IAM用户。

# 1. 在AWS控制台创建IAM用户,并为其附加“AdministratorAccess”策略(为简化,实际生产建议按需赋权)。
# 2. 为该用户创建访问密钥(Access Key)。
# 3. 在本地配置
aws configure

依次输入:

  • AWS Access Key ID
  • AWS Secret Access Key
  • Default region name: us-east-1
  • Default output format: json

验证凭证是否生效: 无论采用哪种方式,部署前务必用以下命令验证:

aws sts get-caller-identity

这条命令会返回当前凭证对应的账户、用户ARN等信息。如果看到类似 “UserId”: “AROA...:bot-session” (SSO)或 “UserId”: “AIDA...” (IAM用户)的响应,说明配置成功。如果报错“Unable to locate credentials”,则需要回头检查上述配置步骤。

2.3 AWS CDK引导:一次性的基础设施准备

openclaw-aws 底层使用AWS Cloud Development Kit (CDK)来创建云资源。CDK需要在你目标部署的**每个区域(Region) 每个账户(Account)**中执行一次性的引导(Bootstrap)操作。这个过程会创建一个S3存储桶和一些IAM角色,用于存放CDK生成的CloudFormation模板和资产。

如何判断是否需要引导? 如果你从未在该区域使用过CDK,那么就需要引导。一个简单的判断方法是,尝试部署一个最简单的CDK应用,或者直接运行引导命令,如果提示“已经引导过”,则跳过。

引导命令:

# 确保你在正确的账户和区域下(可用 aws configure list 查看)
cdk bootstrap aws://ACCOUNT-NUMBER/REGION
# 例如:cdk bootstrap aws://123456789012/us-east-1

ACCOUNT-NUMBER 是你的12位AWS账户ID,可以在 aws sts get-caller-identity 的输出中找到。这个过程通常只需几分钟。对于 openclaw-aws 的用户,你通常只需要在你计划部署的那个区域执行一次即可。

3. 初始化配置与核心参数详解

环境准备好后,我们就可以开始使用 openclaw-aws 了。第一步是初始化配置,这是理解整个项目架构和做出关键决策的环节。

3.1 交互式初始化流程拆解

运行 npx openclaw-aws init 会启动一个交互式向导。我们不仅要按步骤操作,更要理解每一步选择的含义。

  1. 配置名称(Config name)

    • 提示 ? Config name (default: “default”):
    • 解读与选择 :这是你本地管理多个机器人配置的标识符。如果你只部署一个机器人,用 default 就行。但如果你计划部署多个不同用途或环境的机器人(如 dev-bot prod-bot ),这里就应该输入一个具有描述性的名字。这个名字会用于生成后续的配置文件和CloudFormation堆栈名的一部分。
  2. AWS区域(AWS region)

    • 提示 ? AWS region (default: “us-east-1”):
    • 解读与选择 :选择EC2实例将要运行的地理区域。选择 us-east-1 (弗吉尼亚)通常是最稳妥的,因为它是AWS最老、服务最全、新功能上线最快的区域,并且EC2价格通常有优势。如果你的用户主要在欧洲或亚洲,可以考虑 eu-west-1 (爱尔兰)或 ap-northeast-1 (东京)以减少网络延迟。 关键点 :你必须确保上一步的AWS凭证在该区域有操作权限,并且CDK已经在该区域引导过。
  3. EC2实例类型(EC2 instance type)

    • 提示 ? EC2 instance type (default: “t3.small”):
    • 解读与选择 t3.small 是一个平衡的选择,它拥有2个vCPU和2GiB内存,对于运行OpenClaw及其依赖的服务来说,入门完全足够。 t3 系列是突发性能实例,拥有CPU积分桶。对于间歇性工作的AI机器人,这很经济。如果你的机器人需要持续高强度的计算(例如频繁进行大模型推理),可以考虑 t3.medium (2vCPU, 4GiB)或 c6i 系列计算优化型实例。记住,实例类型直接影响每小时的成本。
  4. 使用默认VPC(Use default VPC)

    • 提示 ? Use default VPC? (default: “yes”):
    • 解读与选择 :绝大多数AWS账户在创建时都会在每个区域生成一个默认VPC。选择“yes”会让工具在这个现成的VPC中创建资源(子网、安全组等),这是最快速、最省事的方式,特别适合新手和个人项目。如果你有严格的网络规划,需要在特定的自定义VPC中部署,可以选择“no”,但工具目前版本可能不支持指定已有VPC,这意味着它会尝试创建一个新的VPC,这可能会和你现有的网络架构冲突。 对于绝大多数情况,直接选“yes”
  5. 启用CloudWatch日志(Enable CloudWatch Logs)

    • 提示 ? Enable CloudWatch Logs? (default: “yes”):
    • 解读与选择 强烈建议启用 。CloudWatch Logs会将EC2实例上的系统日志(如 cloud-init )和OpenClaw服务日志自动收集到AWS的日志服务中。这样,即使实例无法通过SSM连接,你也能在AWS控制台查看日志,这对于排查启动失败、服务崩溃等问题至关重要。虽然会产生少量的CloudWatch日志存储费用,但相对于其提供的可观测性价值,这点成本是值得的。
  6. OpenClaw API提供商(OpenClaw API provider)

    • 提示 ? OpenClaw API provider (default: “anthropic-api-key”):
    • 解读与选择 :OpenClaw机器人需要连接一个大语言模型API来获得“智能”。默认选项 anthropic-api-key 意味着你需要提供一个Anthropic(Claude模型)的API密钥。工具会引导你在部署前设置环境变量 ANTHROPIC_API_KEY 。如果你配置了其他提供商(如OpenAI),这里可能需要选择对应的选项。这一步决定了后续机器人运行时将调用哪个AI服务。

向导结束后,工具会在当前目录下生成一个 .openclaw-aws/configs/<配置名>.json 文件。这个文件就是你的部署蓝图,所有选择都被固化在这里。你可以随时用文本编辑器打开查看和修改(谨慎操作)。

3.2 配置文件深度剖析

让我们仔细看看生成的配置文件,理解每个字段的作用:

{
  “version”: “1.0”,
  “aws”: {
    “region”: “us-east-1” // 部署区域,与初始化选择一致
  },
  “instance”: {
    “type”: “t3.small”, // EC2实例规格,直接影响性能和成本
    “name”: “openclaw-my-bot” // 实例在EC2控制台显示的名称
  },
  “network”: {
    “useDefaultVpc”: true // 网络架构基石,true表示使用账户默认VPC
  },
  “features”: {
    “cloudWatchLogs”: true // 可观测性开关,强烈建议保持true
  },
  “openclaw”: {
    “apiProvider”: “anthropic-api-key” // 机器人“大脑”的供应商
  },
  “stack”: {
    “name”: “OpenclawStack-my-bot” // CloudFormation堆栈名,在AWS控制台据此查找资源
  }
}

手动高级配置:使用指定的AWS CLI Profile 如果你的本地有多个AWS配置Profile(例如 work , personal ),你可以在配置文件中手动添加 profile 字段,让工具使用特定的Profile。这在管理多个AWS账户时非常有用。

{
  “version”: “1.0”,
  “aws”: {
    “region”: “us-east-1”,
    “profile”: “my-work-profile” // 新增此行,指定使用的AWS CLI profile
  },
  // ... 其他配置保持不变
}

4. 部署流程与底层架构揭秘

配置完成后,最激动人心的部署环节只需一条命令: npx openclaw-aws deploy 。但在这条命令背后,工具为我们构建了一整套符合生产级安全要求的云基础设施。让我们深入这个“黑盒”,看看它到底做了什么。

4.1 部署命令执行与资源创建过程

当你运行 deploy 命令后,会触发以下链式反应:

  1. CDK合成 :工具首先调用AWS CDK,根据你的配置文件,生成一份AWS CloudFormation模板。这份模板用JSON或YAML描述了你所有需要的AWS资源及其关系。
  2. 变更集创建与执行 :CDK会将生成的模板与AWS账户中已存在的资源(如果有)进行比较,生成一个变更集(Change Set),并列出将要创建、修改或删除的资源。确认后,便开始执行部署。
  3. 资源顺序创建 :CloudFormation会以依赖关系为顺序,自动创建资源。典型的创建顺序是:
    • IAM角色 :创建一个具有最小权限的IAM角色,该角色只包含允许EC2实例与Systems Manager(SSM)通信所必需的策略(如 AmazonSSMManagedInstanceCore )。这是安全实践“最小权限原则”的体现。
    • 安全组 :创建一个 没有任何入站规则 的安全组。这意味着从互联网无法通过SSH(22端口)或任何其他端口直接访问这台EC2实例。出站规则默认是允许所有流量,以便实例能下载软件包、调用AI API等。
    • EC2实例
      • 使用最新的Ubuntu 24.04 LTS AMI(亚马逊系统镜像)。
      • 挂载一个加密的EBS卷作为根磁盘(数据静态加密)。
      • 关联上一步创建的安全组和IAM角色。
      • 启用IMDSv2(Instance Metadata Service),并强制使用令牌模式,这是防止服务器端请求伪造(SSRF)攻击的关键安全加固。
      • 分配一个公网IP地址。 注意 :这个公网IP仅用于实例的 出站 连接(如下载更新、访问外部API),因为安全组没有入站规则,所以外界无法通过这个IP主动连接进来。
    • VPC配置 :根据你的选择,要么使用默认VPC的子网,要么创建新的网络资源。
    • CloudWatch代理 (如果启用):在实例上自动安装并配置CloudWatch代理,将指定日志流发送到CloudWatch Logs。

整个部署过程通常在5到10分钟内完成。你可以在终端看到实时的创建事件流。部署成功后,工具会输出关键信息,如实例ID、堆栈名等。

4.2 安全架构的核心:SSM-only访问

这是 openclaw-aws 设计中最精妙的一点。传统的EC2管理依赖SSH密钥对和开放22端口,这带来了密钥管理、端口暴露、暴力破解等安全风险。该项目彻底摒弃了这种方式。

原理 :AWS Systems Manager (SSM) Session Manager 功能允许你通过AWS API和控制台,在无需公网IP和开放入站端口的情况下,安全地连接到EC2实例。它通过在实例内部运行一个SSM Agent,并与AWS服务端建立一条 出向的、加密的 WebSocket连接来实现。

带来的好处

  • 零入站端口 :攻击面降至最低。
  • 无需管理SSH密钥 :访问权限完全由IAM控制。谁有权启动SSM会话,由IAM策略决定。
  • 完整的审计日志 :每一次会话连接、每一条命令执行,都可以在AWS CloudTrail中留下记录,满足合规要求。
  • 更便捷的访问 :无需记忆IP地址或管理密钥文件,一个命令即可连接。

openclaw-aws connect dashboard 命令,底层都是通过启动一个本地SSM会话隧道来实现的。

4.3 部署后的关键操作

部署完成后,有两件必须做的事情:

  1. 设置API密钥 :你的机器人需要“大脑”。根据初始化时选择的API提供商,设置对应的环境变量。

    # 如果使用Anthropic (Claude)
    export ANTHROPIC_API_KEY=sk-ant-xxx...你的真实密钥...
    # 对于bash/zsh,可以将此行添加到 ~/.bashrc 或 ~/.zshrc 以便永久生效(注意安全风险)
    

    重要安全提示 :切勿将API密钥提交到版本控制系统(如Git)。最佳实践是使用AWS Secrets Manager或类似服务来存储密钥,并在实例启动时通过用户数据脚本注入。 openclaw-aws 当前版本通过环境变量传递,对于生产环境,建议你后续自行改造启动脚本以实现更安全的密钥管理。

  2. 启动机器人并访问仪表盘

    # 查看状态,确认实例已运行且SSM Agent就绪
    npx openclaw-aws status
    # 输出应显示 “Instance state: running” 和 “SSM status: Online”
    
    # 端口转发,访问OpenClaw的Web管理界面
    npx openclaw-aws dashboard
    # 此命令会阻塞终端,并在本地打开浏览器访问 http://localhost:18789
    # 首次访问可能需要等待几十秒,待OpenClaw服务完全启动后刷新页面。
    

5. 日常运维、问题排查与成本控制

机器人部署上线只是开始,稳定的运维和成本控制同样重要。

5.1 多机器人(多配置)管理实战

openclaw-aws 优秀地支持多配置管理,这让你可以轻松管理开发、测试、生产等多个环境。

# 1. 为不同环境创建独立配置
npx openclaw-aws init --name openclaw-dev
npx openclaw-aws init --name openclaw-prod
# 在交互中为它们选择不同的实例类型、区域等。

# 2. 列出所有配置
npx openclaw-aws list
# 输出示例:
# Configs:
# - openclaw-dev (current)
# - openclaw-prod

# 3. 切换到生产配置并部署
npx openclaw-aws use openclaw-prod
npx openclaw-aws deploy

# 4. 查看所有配置对应的实例状态
npx openclaw-aws status --all

每个配置都是完全独立的,拥有自己的CloudFormation堆栈、EC2实例和配置文件。 current.json 文件记录了当前活跃的配置,所有不带 --name 参数的命令都针对这个当前配置执行。

5.2 核心运维命令详解与场景

  • start / stop / restart :这是 成本控制的生命线 。一个 t3.small 实例在 us-east-1 运行一个月(730小时)大约需要$14.6。如果只在工作时间运行,成本可以降低三分之二以上。

    # 下班了,停止实例省钱
    npx openclaw-aws stop
    # 第二天上班,启动实例
    npx openclaw-aws start
    # 启动后,状态可能不会立即变为“running”,需要等待1-2分钟
    npx openclaw-aws status --wait
    

    stop 是软关机,EBS卷仍会收费但费率很低。 restart 常用于应用配置更新或故障恢复。

  • logs :这是排查问题的第一把钥匙。

    # 查看cloud-init日志(实例首次启动的初始化日志)
    npx openclaw-aws logs --init
    # 查看OpenClaw应用服务日志的最后50行
    npx openclaw-aws logs --service --tail 50
    # 实时跟踪应用日志(类似 tail -f)
    npx openclaw-aws logs --service --follow
    

    如果启用了CloudWatch Logs,你还可以直接去AWS控制台的CloudWatch > Log groups > /aws/ec2/openclaw/my-bot 下查看更完整的历史日志。

  • connect :当仪表盘无法访问或需要深入系统内部排查时使用。

    npx openclaw-aws connect
    

    这会打开一个完整的终端会话,就像SSH连接一样。你可以在这里检查进程状态、查看系统资源、修改配置文件(需谨慎)等。

5.3 常见问题排查实录

即使工具设计得再完善,在实际操作中仍可能遇到问题。以下是我在多次部署中遇到的典型问题及解决方法。

问题一:部署后运行 status ,SSM状态一直显示 Pending Connection Lost

  • 原因分析 :SSM Agent未成功启动或无法与AWS服务端建立连接。这通常发生在实例刚启动的几分钟内,或者IAM角色权限不足。
  • 排查步骤
    1. 等待与重试 :实例启动后,SSM Agent需要时间安装和启动。等待2-3分钟再检查状态。
    2. 检查IAM角色 :在EC2控制台找到你的实例,查看其附加的IAM角色。确保该角色包含托管策略 AmazonSSMManagedInstanceCore 。这是SSM工作的最低要求。
    3. 检查网络连接 :实例需要出站访问SSM服务端点。如果使用自定义VPC且没有配置NAT网关或接口端点,会导致连接失败。使用默认VPC通常不会有此问题。
    4. 查看系统日志 :通过 npx openclaw-aws logs --init 查看 cloud-init 日志,搜索 ssm error 关键字,看是否有安装错误。
  • 解决方案 :大多数情况下是等待时间不够。如果超过5分钟仍不行,尝试重启实例 npx openclaw-aws restart 。如果问题依旧,检查上述的IAM和网络配置。

问题二:运行 dashboard 命令后,浏览器打开 localhost:18789 显示“无法连接”或空白页。

  • 原因分析 :端口转发成功,但OpenClaw服务本身尚未在实例内部启动完成。
  • 排查步骤
    1. 检查服务状态 :通过 npx openclaw-aws connect 连接实例,然后运行 sudo systemctl status openclaw (或类似的服务名,具体看部署日志)来确认服务是否处于 active (running) 状态。
    2. 检查端口监听 :在实例内部运行 sudo netstat -tlnp | grep 18789 ,查看是否有进程监听18789端口。
    3. 检查应用日志 npx openclaw-aws logs --service --tail 100 ,查看是否有启动错误,特别是API密钥未设置或无效的错误。
  • 解决方案 :确保 ANTHROPIC_API_KEY 环境变量已正确设置并导出。然后重启OpenClaw服务:在实例内 sudo systemctl restart openclaw ,或直接重启实例 npx openclaw-aws restart 。等待一分钟后再刷新浏览器。

问题三: destroy 命令执行失败,部分资源残留。

  • 原因分析 :CloudFormation删除堆栈时,如果某些资源被额外保护(如开启了终止保护)或存在依赖关系删除失败,会导致整个回滚,堆栈状态变为 DELETE_FAILED
  • 排查步骤
    1. 运行 npx openclaw-aws outputs 查看堆栈状态。
    2. 前往AWS CloudFormation控制台,找到对应的堆栈,查看“事件”选项卡,找到最早出现的失败事件,了解是哪个资源删除失败及原因。
  • 解决方案 :常见原因是EBS卷因某些策略(如快照)被锁定。你需要手动清理:
    1. 在CloudFormation控制台,删除失败的堆栈(如果还存在)。
    2. 在EC2控制台,手动删除对应的安全组、IAM角色(如果未被其他资源使用)和 最关键的 ——终止EC2实例并删除其关联的EBS卷。
    3. 清理完毕后,可以重新运行 npx openclaw-aws destroy

5.4 成本监控与优化建议

将机器人放在云端,成本意识必不可少。

  1. 利用AWS Cost Explorer :在AWS控制台启用Cost Explorer,设置筛选条件为“服务:EC2”和“实例类型:t3.small”,可以清晰看到该实例的每日花费。
  2. 设置预算告警 :在AWS Budgets中创建一个月度成本预算(例如$20),并设置当预测费用或实际费用达到80%和100%时通过邮件告警。
  3. 自动化启停(进阶) :虽然 openclaw-aws 没有内置定时功能,但你可以结合AWS Lambda和CloudWatch Events规则,创建一个简单的自动化脚本。例如,创建一个Lambda函数,该函数调用AWS SDK来启动/停止指定标签的EC2实例,然后设置CloudWatch Events在每天上午9点触发启动,晚上6点触发停止。
  4. 考虑Spot实例(高级) :对于可以容忍中断的非关键任务,Spot实例的成本可以降低60%-90%。但这需要修改底层CDK代码,将 InstanceClass InstanceSize 替换为 InstanceType.of(InstanceClass.BURSTABLE3, InstanceSize.SMALL) 并设置 spotOptions ,属于进阶操作。

6. 项目贡献与本地开发指南

如果你觉得这个工具好用,并希望为其添加功能或修复Bug,参与到开源项目中是一个很好的选择。 openclaw-aws 项目结构清晰,便于开发者上手。

6.1 本地开发环境搭建

# 1. 克隆项目并进入目录
git clone https://github.com/salza80/openclaw-aws.git
cd openclaw-aws

# 2. 确保使用Node.js 22+
node --version

# 3. 安装项目依赖
npm install
# 这个过程会安装所有依赖,包括AWS CDK构造库、CLI框架等。

# 4. 编译TypeScript代码
npm run build
# 这将把src/目录下的.ts文件编译成js,输出到lib/目录。

# 5. 全局链接,方便本地测试
npm link
# 执行后,你可以在任何目录直接使用`openclaw-aws`命令,指向你本地开发版本。

6.2 代码结构与修改要点

  • src/cli.ts :命令行入口文件,定义了所有命令( init , deploy , status 等)的处理逻辑。
  • src/commands/ :各个命令的具体实现模块。
  • src/lib/ :核心库文件,其中 openclaw-aws-stack.ts 重中之重 。它定义了使用AWS CDK构建的所有基础设施资源(EC2、IAM、VPC等)。如果你想修改实例类型、添加新的安全组规则、调整存储大小,都需要修改这个文件。
  • bin/openclaw-aws.ts :CLI的二进制入口。
  • lib/ :编译后的JavaScript代码目录,不要直接修改这里。

例如,如果你想将默认的EBS卷大小从8GB增加到20GB,你需要:

  1. 打开 src/lib/openclaw-aws-stack.ts
  2. 找到创建 BlockDeviceVolume 的部分(通常在 new ec2.Instance blockDevices 属性里)。
  3. volumeSize 属性从 8 改为 20
  4. 运行 npm run build 重新编译。
  5. 在一个测试目录中,使用 npm link 后的全局命令进行部署测试。

6.3 测试与提交

在做出修改后,务必进行充分测试。

# 在项目根目录,启动监听模式,代码变动会自动重编译
npm run watch

# 打开另一个终端,进入一个干净的测试目录
mkdir ~/test-openclaw && cd ~/test-openclaw
# 使用你本地链接的版本进行测试
openclaw-aws init --name test-dev
openclaw-aws deploy
# ... 测试你的修改 ...
openclaw-aws destroy --name test-dev --force

测试无误后,你可以到GitHub仓库创建Fork,提交Pull Request。一个好的PR应包含清晰的修改描述、测试步骤以及修改理由。

整个 openclaw-aws 项目体现了一种极简而安全的运维哲学。它通过封装最佳实践,让开发者能够专注于机器人业务逻辑本身,而无需在云基础设施的复杂性和安全性上耗费过多精力。从我的使用体验来看,它特别适合需要快速原型验证、个人项目部署或小型团队管理的场景。随着你对AWS和OpenClaw的熟悉,你完全可以以此为基础,定制出更符合自身复杂需求的部署方案。

更多推荐