Docker Compose部署OpenWhisk后wsk创建动作连接拒绝如何解决
问题根因
报错中请求自动跳转31001端口、走HTTPS协议,由两个配置错误直接导致:
- 手动执行
wsk property set时未指定HTTP协议前缀,OpenWhisk CLI默认将不带协议的apihost按HTTPS解析,自动寻址内部HTTPS端口31001,但Docker Compose部署的开发版OpenWhisk默认仅在9090端口暴露HTTP接口 - 手动配置的参数未覆盖项目目录下自动生成的
.wskprops隐式配置,CLI实际加载的配置和手动设置的参数不一致
修复步骤
按顺序执行以下操作即可快速修复:
- 清空现有错误CLI配置
wsk property unset --apihost wsk property unset --auth
- 回到OpenWhisk Docker Compose部署包的项目根目录,执行官方预设的CLI配置命令,不需要手动抄取端口、auth参数
make setup-cli
- 校验配置正确性
wsk property get
确认输出中API host值为http://localhost:9090(必须带http://前缀,不能为裸地址或https开头),Auth值和项目根目录下.wskprops文件记录的auth值完全一致。
- 配置开发环境跳过证书校验
wsk property set --insecure
- 重新执行动作创建命令验证
wsk action create someAction main.js
补充避坑点
- 不要手动读取
.wskprops抄录参数执行set操作,开发版生成的.wskprops中apihost自带http://前缀,手动配置时遗漏协议前缀是触发端口跳转错误的最常见原因 - 如果上述步骤执行后仍有配置异常,直接将项目根目录下的
.wskprops文件复制到用户根目录(路径为~/.wskprops)覆盖全局配置即可,OpenWhisk CLI默认优先读取用户目录下的该配置文件 - Docker Compose开发版部署完成后不需要额外调整端口映射,
make run执行成功后9090端口会自动映射到本地,无需修改compose配置文件
内容的提问来源于stack exchange,提问作者BrKo14
相关产品推荐
相关产品推荐

