我试图从OpenWhisk动作中调用Watson系统软件包中包含的动作(文本到语音)。

我已经绑定了服务并设置了凭据,因此从CLI中可以看到

wsk list
entities in namespace: xxxxxx
packages
/xxxxxx/myWatson                           private binding


这是我的OpenWhisk动作:

function main(param) {
   //code here for my action. At the end, I invoke the text to speech

   if (...) {
      textToSpeech(param.text);
    }
    else {
        return whisk.error(error);
    }
    return whisk.async();
}

function textToSpeech(text){
    whisk.invoke({
      name:'myWatson/textToSpeech',
      parameters:{
        payload: text,
        voice: 'en-US_MichaelVoice',
        accept: 'audio/wav',
        encoding: 'base64'
      },
      blocking: true,
      next: function(error, activation){
        if(error){
            return whisk.error(error);
        }
        else{
            return whisk.done({msg:'success'});
        }
      }
   });
}


我得到以下错误

"response": {
    "result": {
        "error": "The requested resource does not exist. (undefined)"
    },
    "status": "application error",
    "success": false
}


你能帮助我理解我做错了什么吗?

最佳答案

操作名称应完全限定为包含名称空间。从CLI输出中,您的程序包看起来是/xxxxxx/myWatson,因此whisk.invoke中的操作引用应该是/xxxxxx/myWatson/textToSpeech

关于node.js - OpenWhisk从 Action 中调用Watson文本到语音 Action ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38132766/

10-11 20:48