PAI CLI 通过 config 子命令管理配置 Profile,支持多 Profile 并行、多种认证方式和 Endpoint 覆盖。
配置文件
PAI CLI 的所有配置存储在本地文件 ~/.pai/config.json 中,格式为 JSON。
该文件支持多个命名 Profile,每个 Profile 包含独立的凭证、地域、工作空间和 Endpoint 配置,适用于开发/生产等多环境并行切换场景。
config init
pai config init [--profile NAME]交互式引导完成凭证、地域与工作空间配置,适合首次上手。两个设计保障:
环境变量或实例 RAM 角色已提供的凭证会被检测并复用,不会被复制进配置文件(避免冻结会轮换的临时凭证);
所有值先通过真实 API 验证后才写入配置文件。
脚本/非交互场景请用 pai config set。
config show
pai config show [--profile NAME]显示实际生效的配置及每个值的来源。与 config list(只打印 profile 文件内容)不同,show 按命令实际使用的解析链输出:flag > profile > PAI_* > ALIBABA_CLOUD_*,适合排查"为什么命令用了另一个地域"这类问题。
配置凭证的几种方式
# 方式 1:AccessKey 凭证(最常用)
pai config set access_key_id LTAI5xxxxxxxxxxxxx
pai config set access_key_secret xxxxxxxxxxxxxxxxxxxxxxxx
# 方式 2:STS 临时凭证
pai config set access_key_id STS.xxxxxxxxxxxxx
pai config set access_key_secret xxxxxxxxxxxxxxxxxxxxxxxx
pai config set security_token xxxxxxxxxxxxxxxxxxxxxxxx
# 方式 3:ECS RAM Role(在 ECS 实例上运行时)
pai config set credential_type ecs_ram_role
pai config set role_name my-ram-role
# 方式 4:RAM Role AssumeRole
pai config set credential_type ram_role_arn
pai config set role_arn acs:ram::123456789:role/my-role凭证解析优先级:credential_type 显式指定 → access_key_id + access_key_secret(有 security_token 则为 STS)→ 阿里云默认凭证链(ALIBABA_CLOUD_* 环境变量 → ~/.aliyun/credentials → ECS RAM Role → OIDC)。
DSW 实例内免 AK/SK 配置:若执行环境位于 DSW 实例内部,且该实例已绑定实例 RAM 角色,则无需配置 AccessKey。CLI 会自动通过实例 metadata server 获取临时鉴权信息,并以实例 Owner 的身份和权限执行所有命令。
config set
pai config set <key> <value> [--profile NAME]参数 | 类型 | 默认值 | 说明 |
region | string | — | 地域 ID。环境变量 PAI_REGION,回退到 ALIBABA_CLOUD_REGION_ID |
workspace_id | string | — | 默认工作空间 ID。环境变量 PAI_WORKSPACE_ID |
access_key_id | string | — | AccessKey ID。环境变量 PAI_ACCESS_KEY_ID |
access_key_secret | string | — | AccessKey Secret(config list 时脱敏显示) |
security_token | string | — | STS 临时凭证 Token。设置后自动切换为 STS 认证 |
credential_type | string | — | 认证类型 |
role_name | string | — | ECS 实例 RAM 角色名(credential_type=ecs_ram_role 时使用) |
role_arn | string | — | RAM 角色 ARN(ram_role_arn / oidc_role_arn 时使用) |
role_session_name | string | — | AssumeRole 会话名称,记录在审计日志中 |
oidc_provider_arn | string | — | OIDC Provider ARN(ACK RRSA 场景) |
oidc_token_file | string | — | OIDC Token 文件路径 |
credentials_uri | string | — | 外部凭证服务 HTTP 地址 |
endpoint | string | — | 全局 API Endpoint 覆盖(建议优先使用产品级 endpoint) |
endpoint_dsw | string | — | DSW 产品 Endpoint |
endpoint_dlc | string | — | DLC 产品 Endpoint |
endpoint_aiworkspace | string | — | AIWorkspace 产品 Endpoint |
endpoint_eas | string | — | EAS 产品 Endpoint |
endpoint_paistudio | string | — | PAIStudio(Quota/资源组)产品 Endpoint |
protocol | string | https | 通信协议 |
config get
pai config get <key> [--profile NAME]config list
pai config list [--profile NAME]显示当前 Profile 的所有配置值,敏感字段自动脱敏。
多 Profile 管理
# 创建开发环境 Profile
pai config set access_key_id LTAI5xxxxxxxxxxxxx --profile dev
pai config set access_key_secret xxxxxxxxxxxxxxxxxxxxxxxx --profile dev
pai config set region cn-hangzhou --profile dev
# 创建生产环境 Profile
pai config set access_key_id LTAI5yy********yy --profile prod
pai config set access_key_secret yyyyyy******yyyyyyyy --profile prod
pai config set region cn-shanghai --profile prod
# 切换 Profile 使用
pai dsw instance list --profile dev
pai dsw instance list --profile prod