"could not load the shared library" API 谷歌虚拟机的错误



我正在与googleapi集成以管理vm,使用的代码是:

const {google} = require('googleapis');
const compute = google.compute('v1');
async function listVMs() {
const authClient = await google.auth.getClient({
scopes: [
'https://www.googleapis.com/auth/cloud-platform',
'https://www.googleapis.com/auth/compute',
'https://www.googleapis.com/auth/compute.readonly',
],
});

const projectId = await google.auth.getProjectId();
const result = await compute.instances.aggregatedList({
auth: authClient,
project: projectId,
});
const vms = result.data;
console.log('VMs:', vms);
}
listVMs();

我得到的错误:

节点:internal/crypto/sig:131const ret=this[kHandle].sign(数据、格式、类型、密码短语、rsaPadding,^

错误:错误:25078067:DSO支持例程:win32_lad:无法加载共享库在Sign.Sign(节点:internal/crypto/sig:131:29(在Object.sign(C:\Users\Mauricio Spagnol\workspace\workBrightCloud\BrightCloud Web Portal\backend\node_modules\jwa\index.js:152:45(在Object.jwsSign[as-sign](C:\Users\Mauricio Spagnol\workspace\workBrightCloud\BrightCloud Web Portal\backend\node_modules\jws\lib\sign stream.js:32:24(位于GoogleToken.requestToken(C:\Users\Mauricio Spagnol\workspace\workBrightCloud\BrightCloud Web Portal\backend\node_modules\gtoken\build\src\index.js:225:31(位于GoogleToken.getTokenAsyncInner(C:\Users\Mauricio Spagnol\workspace\workBrightCloud\BrightCloud Web Portal\backend\node_modules\gtoken\build\src\index.js:163:21(在GoogleToken.getTokenAsync(C:\Users\Mauricio Spagnol\workspace\workBrightCloud\BrightCloud Web Portal\backend\node_modules\gtoken\build\src\index.js:142:55(在GoogleToken.getToken(C:\Users\Mauricio Spagnol\workspace\workBrightCloud\BrightCloud Web Portal\backend\node_modules\gtoken\build\src\index.js:94:21(位于JWT.refreshTokenNoCache(C:\Users\Mauricio Spagnol\workspace\workBrightCloud\BrightCloud Web Portal\backend\node_modules\google auth library\build\src\auth\jwtclient.js:171:36(位于JWT.refreshToken(C:\Users\Mauricio Spagnol\workspace\workBrightCloud\BrightCloud Web Portal\backend\node_modules\google auth library\build\src\auth\oauth2client.js:152:24(在JWT.getRequestMetadataAsync(C:\Users\Mauricio Spagnol\workspace\workBrightCloud\BrightCloud Web Portal\backend\node_modules\google auth library\build\src\auth\oauth2client.js:284:28({opensslErrorStack:['错误:0E076071:配置文件例程:module_run:未知模块名称','错误:0E07506E:配置文件例程:module_load_dso:加载dso时出错','错误:25070067:DSO支持例程:DSO_load:无法加载共享库'],库:"DSO支持例程",函数:'win32_lad',原因:"无法加载共享库",代码:'ERR_OSSL_DSO_COULD_NOT_LOAD_THE_SHARED_LIBRARY'}error命令失败,退出代码为1。信息访问https://yarnpkg.com/en/docs/cli/run有关此命令的文档。

在我的案例中,这个问题与新Ubuntu 22.04 LTS版本上的内部nodejs加密包有关。

我找到了以下解决方案:获取openssl.cnf文件的位置:openssl version -d

注释掉文件openssl.cnf中的行providers = provider_sectin并重新启动应用程序

解决方案是向项目添加证书,以https:运行

  • 生成证书:如何使用OpenSSL生成自签名SSL证书
  • 添加服务器:https.createServer({ key:fs.readFileSync("certificate/key.pem"), cert:fs.readFileSync("certificate/cert.pem") },app).listen(3001);

最新更新