常见问题排查

更新时间:
复制 MD 格式

汇总 PAI CLI 使用中常见的认证、网络、实例创建等问题及其解决方法。

认证与凭证

Q: 提示 "credential is empty" 或认证失败?

  1. 检查是否已配置凭证:pai config list(敏感字段会脱敏显示,但能看到是否为空)

  2. 检查 AccessKey 是否有效:在阿里云控制台 → RAM 访问控制 → 用户 → 管理 AccessKey 中确认

  3. 如果使用环境变量,确认 PAI_ACCESS_KEY_IDPAI_ACCESS_KEY_SECRET 已正确设置

  4. 如果使用 ECS RAM Role,确认实例已绑定 RAM 角色且 credential_type 设为 ecs_ram_role

Q: 如何在不同账号间切换?

# 使用 Profile 切换
pai dsw instance list --profile dev
pai dsw instance list --profile prod

网络与连通性

Q: exec / cp 命令提示 "connection refused" 或超时?

  1. 确认实例状态为 Running:pai dsw instance get <instance-id>

  2. 检查通道类型:默认使用 gateway 通道,如果实例未开启公网访问,可能需要使用 VPC 通道

  3. 尝试切换通道:pai dsw instance exec --via vpc <instance-id> -- echo ok

  4. 使用 --debug 查看详细网络请求日志,定位具体错误

Q: 在 DSW 实例内部如何使用 pai?

DSW 实例内已预装 pai CLI,通常可直接运行 pai 命令而无需配置 AccessKey。当实例已绑定实例 RAM 角色时,CLI 会通过实例 metadata server 自动获取临时鉴权信息,并以实例 Owner 的身份和权限执行命令(详见配置管理 — 凭证配置中的免 AK/SK 提示)。若实例未绑定 RAM 角色,仍需通过 pai config set 或环境变量配置凭证。

实例创建与规格

Q: 创建实例时提示 "resource is not enough"?

  1. 查看该规格的可用性:pai dsw instance list-ecs-specs --accelerator-type GPU,关注 is_available 字段

  2. 尝试切换地域或可用区:--region cn-shanghai

  3. 尝试使用抢占式实例(价格更低但可能被回收):在 --spot-spec 中配置

  4. 如果是包年包月,检查资源配额是否充足:pai resource quota get <quota-id>

Q: 如何选择合适的镜像?

# 列出所有官方预设镜像
pai image list --type preset

# 列出自定义镜像
pai image list --type custom

镜像 ID 通常格式为 framework:version-gpu-pyversion-cuda-ubuntuversion,例如 pytorch:2.0.1-gpu-py310-cu118-ubuntu20.04

调试技巧

Q: 如何查看命令实际发送的 API 请求?

# 加 --debug 查看完整 HTTP 请求/响应
pai dsw instance list --debug

# 使用 --dry-run 预览操作而不执行
pai dsw instance delete <instance-id> --dry-run

# 使用 --generate-skeleton 生成请求模板
pai dsw instance create --generate-skeleton

Q: 如何用 jq 处理 JSON 输出?

# 提取实例 ID 列表
pai dsw instance list -o json | jq '.[].instance_id'

# 过滤 Running 状态的实例
pai dsw instance list -o json | jq '.[] | select(.status == "Running")'

# 获取第一个实例的 ID
pai dsw instance list -o json | jq -r '.[0].instance_id'

常见错误速查

错误信息

原因

解决方法

credential is empty

未配置凭证

执行 pai config set access_key_id ...

InvalidAccessKeyId.NotFound

AccessKey ID 无效

检查 AccessKey ID 是否正确或已删除

SignatureDoesNotMatch

AccessKey Secret 错误

重新设置 access_key_secret

Forbidden.RAM

RAM 权限不足

在 RAM 控制台为用户添加相应权限策略

InstanceNotFound

实例 ID 不存在

检查实例 ID 是否正确,或已删除

InvalidParameter

参数值不合法

检查参数格式,使用 --help 查看正确用法

connection refused

实例不可达

确认实例状态,检查网络通道配置

ResourceNotEnough

资源不足,无法创建实例或提交作业

检查配额/规格可用量,或切换规格、地域