如何无需手动修改配置在多OpenWhisk实例下使用CLI工具?
快速切换OpenWhisk CLI环境的几种实用方法
我日常开发OpenWhisk应用时也经常在本地测试实例和IBM Cloud Functions生产环境之间切换,手动改~/.wskprops确实麻烦,分享几个不用手动修改配置文件的技巧:
方法1:用环境变量临时覆盖配置
OpenWhisk CLI会优先读取环境变量的值,而非~/.wskprops里的配置。你可以直接在执行命令时指定环境变量,或者给常用环境设置别名:
- 临时执行本地环境的命令:
WSK_APIHOST=http://localhost:31001 WSK_AUTH=你的本地授权密钥 wsk action list - 配置别名简化操作(编辑
~/.bashrc或~/.zshrc):
保存后执行# 本地OpenWhisk实例别名 alias wsk-local='WSK_APIHOST=http://localhost:31001 WSK_AUTH=本地授权密钥 wsk' # IBM Cloud Functions别名 alias wsk-ibm='WSK_APIHOST=us-south.functions.cloud.ibm.com WSK_AUTH=IBM Cloud授权密钥 wsk'source ~/.bashrc(或对应shell的配置文件),之后直接用wsk-local action list就能访问本地环境,wsk-ibm action list访问IBM Cloud环境。
方法2:使用多配置文件+--props参数
为不同环境单独创建配置文件,执行命令时通过--props指定要使用的文件:
- 创建本地环境配置文件
~/.wskprops-local,内容和~/.wskprops格式一致,填入本地实例的APIHOST、AUTH等参数; - 创建IBM Cloud环境配置文件
~/.wskprops-ibm,填入生产环境的参数; - 执行命令时指定配置文件:
wsk --props ~/.wskprops-local action list - 同样可以用别名简化:
alias wsk-local='wsk --props ~/.wskprops-local' alias wsk-ibm='wsk --props ~/.wskprops-ibm'
方法3:借助IBM Cloud CLI自动同步配置(针对IBM Cloud Functions)
如果你主要切换的是本地实例和IBM Cloud Functions,推荐用IBM Cloud CLI的Functions插件,它会自动帮你同步环境配置:
- 安装IBM Cloud CLI和Functions插件:
ibmcloud plugin install cloud-functions - 登录IBM Cloud并切换到目标资源组/区域:
ibmcloud login ibmcloud target -g 你的资源组名称 -r us-south - 之后直接用
ibmcloud fn命令操作(它是OpenWhisk CLI的封装),比如:
或者用ibmcloud fn action listibmcloud fn wsk调用原生wsk命令,它会自动使用当前IBM Cloud目标环境的授权和端点,完全不用手动管wskprops。
注意事项
- 优先级:
--props参数 > 环境变量 >~/.wskprops配置文件; - 别名配置后记得重启终端或执行
source命令让配置生效; - 本地OpenWhisk实例的授权密钥通常可以在启动日志里找到,或者通过
wsk admin user create生成。
内容的提问来源于stack exchange,提问作者James Thomas
相关产品推荐
相关产品推荐

