python(ibm_watson sdk)を使用して、「ibmクラウド関数」から他のWatsonサービス(アシスタント、ディスカバリーなど)を呼び出すことはできますか?

アキルペンタ

古いバージョンのpythonパッケージ(「watson_developer_cloud」)のみがインストールされている「ibmcloudfunction」でwatsonディスカバリーサービスを呼び出そうとしています。検出のlist_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

「ibmcloudfunction」に最新バージョンのパッケージをインストールする方法はありますか?または上記のエラーを処理するための回避策はありますか?

timd

上記のコードスニペットを見ると、問題はiam_key要素とiam_url要素を使用していることだと思います。これらは、IAMサービスに連絡してユーザーを認証するようにワトソンに通知します。iam_key / iam_urlをユーザー名/パスワードに置き換えてみてください。これは使用しているWatsonSDKレベルでより一般的でした。apikeyしかない場合は、ユーザー名として「apikey」を使用し、パスワードとしてapikeyを使用してみてください。
curlまたはpostmanを使用して、正しい値があるかどうかをテストできます。うまくいったら、Pythonコードで試してみてください。また、コマンドラインを介してibmクラウド関数の外部でコードをテストし、すべての動作を再度確認してから、クラウド関数に移動することもできます。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

Related 関連記事

ホットタグ

アーカイブ