首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >IBM函数:找不到ibm/auth包

IBM函数:找不到ibm/auth包
EN

Stack Overflow用户
提问于 2021-03-07 10:29:28
回答 1查看 346关注 0票数 0

我使用IBM Cloud functions请求IBM Watson Discovery的一些结果。关于如何调用这一点,有一个非常好的GitHub回购这里。但是,在设置函数中的操作时,出现一个带有消息的错误,无法找到模块‘ibm/auth’。我理解消息的意思,但是如果您检查GitHub回购,您会发现我应用的步骤完全相同。我的IBM函数代码是:

代码语言:javascript
复制
case 'doc_info':
            var user_input = params.user_input;
            const watson = require('ibm-watson/sdk');
            const { CloudantV1 } = require('@cloudant/cloudant');
            const DiscoveryV1 = require('ibm-watson/discovery/v1');
            const { IamAuthenticator } = require('ibm-watson/auth');
            //const { IamAuthenticator } = require('ibm-cloud-sdk-core');

            try {
                const discovery = new DiscoveryV1({                 // Initializing Discovery
                    version: '2020-11-24',
                    authenticator: new IamAuthenticator({
                        apikey: params.apiKeyDisco,
                    }),
                    serviceUrl: params.urlDisco,
                });

                const cloudant = new CloudantV1({                   // Initializing CloudantV1
                    authenticator: new IamAuthenticator({
                        apikey: params.apiKeyCloudant
                    })
                });
                cloudant.setServiceUrl(params.urlCloudant);
                 
                 // ...
                 return {
                   answer: "Simple test"
                 };
                
            } catch (err) {
                console.log(err)
                return Promise.reject({
                  statusCode: 500,
                  headers: { 'Content-Type': 'application/json' },
                  body: { message: err.message },
                });
            }
            break;

我甚至尝试过从ibm核心包调用IamAuthenticator,但是错误是IamAuthenticator不是构造函数。我们怎样才能解决这个问题?

EN

回答 1

Stack Overflow用户

发布于 2021-03-08 07:01:25

请看这里的IBM函数中可用的运行时环境。根据Node.js版本的不同,IBM有不同的版本。正如在文档中所述,Node.js 12运行时具有您正在寻找的具有IAM身份验证功能的较新的SDK。Node.js 10运行时具有V4.xIBMWatson SDK。

因此,您需要使用旧的(记录在案的)身份验证方法,或者移动到Node.js 12运行时。

如果您使用旧的用户名/密码身份验证,并且只有一个IAM密钥,请使用iamapikey作为用户名,使用API密钥作为密码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66515480

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档