SuperAPI AI 工具集

deployment

部署与运维

查看项目

更新于 10-16 08:21

技能介绍

用途

本技能用于管理已有的 Railway 部署,支持列出部署、查看日志、重新部署或移除部署。

需要注意:“移除部署”(railway down)会停止当前部署,但保留服务。若要彻底删除一个服务,应使用 environment 技能并设置 isDeleted: true。

何时使用

  • 用户说“remove deploy”“take down service”“stop deployment”“railway down”
  • 用户想要“redeploy”“restart the service”“restart deployment”
  • 用户要求“list deployments”“show deployment history”“deployment status”
  • 用户要求“see logs”“show logs”“check errors”“debug issues”

列出部署

railway deployment list --limit 10 --json

显示部署 ID、状态和元数据。用于查找特定部署 ID,以便查看日志或调试。

指定服务:

railway deployment list --service backend --limit 10 --json

查看日志

部署日志:

railway logs --lines 100 --json

在非交互模式下,流式输出会自动禁用,CLI 获取日志后即退出。

构建日志:

railway logs --build --lines 100 --json

用于调试构建失败或查看构建输出。

失败/进行中部署的日志:

默认情况下 railway logs 显示最近一次成功的部署。使用 --latest 查看当前部署:

railway logs --latest --lines 100 --json

过滤日志:

仅错误

railway logs --lines 50 --filter "@level:error" --json

文本搜索

railway logs --lines 50 --filter "connection refused" --json

组合条件

railway logs --lines 50 --filter "@level:error AND timeout" --json

按时间过滤:

最近一小时的日志

railway logs --since 1h --lines 100 --json

30 分钟前到 10 分钟前的日志

railway logs --since 30m --until 10m --lines 100 --json

从指定时间戳开始的日志

railway logs --since 2024-01-15T10:00:00Z --lines 100 --json

格式:相对时间(30s、5m、2h、1d、1w)或 ISO 8601 时间戳。

查看特定部署的日志:

部署日志:

railway logs <deployment-id> --lines 100 --json

构建日志:

railway logs --build <deployment-id> --lines 100 --json

从 railway deployment list 获取部署 ID。

注意:部署 ID 是位置参数,不是 --deployment <id>。--deployment 标志是布尔值,用于选择部署日志(相对 --build 构建日志)。

重新部署

重新部署最近的部署:

railway redeploy --service <name> -y

-y 标志跳过确认。适用于:

  • 通过 environment 技能更改了配置
  • 需要在不更新代码的情况下重启
  • 上一次部署成功但服务行为异常

仅重启容器:

不重新构建直接重启(可获取外部资源变更):

railway restart --service <name> -y

适用于外部资源(S3 文件、配置映射)发生变化但代码未变的情况。

移除部署

下线当前部署。服务保留,但没有正在运行的部署。

移除已链接服务的部署

railway down -y

移除指定服务的部署

railway down --service web -y railway down --service api -y

这就是用户说“remove deploy”“take down”或“stop the deployment”时的含义。

注意:这不会删除服务。要彻底删除服务,应使用 environment 技能并设置 isDeleted: true。

CLI 选项

deployment list

标志 说明
-s, --service <NAME> 服务名称或 ID
-e, --environment <NAME> 环境名称或 ID
--limit <N> 最大部署数(默认 20,最大 1000)
--json JSON 输出

logs

标志 说明
-s, --service <NAME> 服务名称或 ID
-e, --environment <NAME> 环境名称或 ID
-d, --deployment 显示部署日志(默认,布尔标志)
-b, --build 显示构建日志(布尔标志)
-n, --lines <N> 行数(必填)
-f, --filter <QUERY> 使用查询语法过滤
--since <TIME> 开始时间(相对时间或 ISO 8601)
--until <TIME> 结束时间(相对时间或 ISO 8601)
--latest 最新部署(即使失败)
--json JSON 输出
[DEPLOYMENT_ID] 特定部署(可选)

redeploy

标志 说明
-s, --service <NAME> 服务名称或 ID
-y, --yes 跳过确认

restart

标志 说明
-s, --service <NAME> 服务名称或 ID
-y, --yes 跳过确认

down

标志 说明
-s, --service <NAME> 服务名称或 ID
-e, --environment <NAME> 环境名称或 ID
-y, --yes 跳过确认

呈现日志

展示日志时:

  • 包含时间戳
  • 突出显示错误和警告
  • 对于构建失败:显示错误并建议修复
  • 对于运行时崩溃:显示堆栈追踪上下文
  • 总结模式(例如“最近 100 条日志中有 15 个超时错误”)

可组合性

  • 推送新代码:使用 deploy 技能
  • 检查服务状态:使用 status 技能
  • 修复配置问题:使用 environment 技能
  • 创建新服务:使用 new 技能

错误处理

未链接服务:

No service linked. Run railway service to select one.

未找到部署:

No deployments found. Deploy first with railway up.

未找到日志:

Deployment may be too old (log retention limits) or service hasn't produced output.