我们可以使用Python的ibm_watson sdk从“ibm云函数”调用其他Watson服务(如助手、发现等)吗?

2024-05-13 10:48:36 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在尝试调用“ibmcloud function”中的watson发现服务,其中只安装了较旧版本的python包(“watson\u developer\u cloud”)。 当调用list\u environments()发现方法时,出现以下错误:

import json
from watson_developer_cloud import DiscoveryV1 

discovery = DiscoveryV1(
    version= version,
    iam_apikey = apikey,
    iam_url = url
)

discovery.list_environments()

错误:

---------------------------------------------------------------------------
WatsonApiException                        Traceback (most recent call last)
<ipython-input-28-46be562e6568> in <module>()
     13 )
     14 
---> 15 discovery.list_environments()

4 frames
/usr/local/lib/python3.6/dist-packages/watson_developer_cloud/iam_token_manager.py in request(self, method, url, headers, params, data, **kwargs)
     32             from .watson_service import WatsonApiException, get_error_message
     33             error_message = get_error_message(response)
---> 34             raise WatsonApiException(response.status_code, message=error_message, httpResponse=response)
     35 
     36     def get_token(self):

WatsonApiException: Error: Not Found, Code: 404

在“ibmcloud function”中是否有安装最新版本包的方法?或者处理上述错误的任何解决方法?你知道吗


Tags: 方法importcloudurldevelopermessageget错误
1条回答
网友
1楼 · 发布于 2024-05-13 10:48:36

看看上面的代码片段,我相信问题在于您使用的是iam\u key和iam\u url元素。这将通知Watson联系IAM服务,然后对您进行身份验证。您可能希望尝试用用户名/密码替换iam\u key/iam\u url,这在您使用的Watson SDK级别中更为常见。如果您只有一个apikey,您可以尝试使用“apikey”作为用户名,apikey作为密码。
您可以通过curl或postman测试您是否具有正确的值。如果可行,那么在python代码中尝试它们。您还可以通过命令行在ibmcloud函数之外测试您的代码,再次检查其所有工作,然后转到cloud函数。你知道吗

相关问题 更多 >