我正在尝试创建一个云函数,该函数在nodejs中包含证书文件。下面是我试图执行的代码:
exports.invoke = async function(req, res) {
const walletPath = path.join(process.cwd(), './wallet');
const wallet = new FileSystemWallet(walletPath);
console.log(`Wallet path: ${walletPath}`);
// Check to see if we've already enrolled the user.
const userExists = await wallet.exists('user1');
console.log(userExists);
if (!userExists) {
console.log('An identity for the user "user1" does not exist in the wallet');
console.log('Run the registerUser.js application before retrying');
return;
}
}
云功能无法读取钱包文件夹中的证书。
提前谢谢。
因此,您正试图让您的云功能使用自定义证书接受另一个服务的HTTP请求(如果我错了,请纠正我(。
要做到这一点,您需要首先将证书作为身份验证密钥提供给您的云功能代码。您可以查看以下链接了解如何实现这一点。
但一般来说,有几个选项可以将证书文件放入云功能:
- 部署时上传(您可以将Google Cloud Function部署的证书文件包括在您的代码目录中,如下所示(
- 上传到谷歌云存储(这种方法,你将证书文件上传到云存储桶,然后在你的功能实例启动时加载文件(
- 加载到环境变量中(如果证书数据的大小可以放入变量中,这也是一个不错的选择,但存在一些安全风险
该工具为最安全的实践之一提供了便利。
我建议你尝试其中一个选项,因为它似乎无法从钱包文件夹中读取它——可能是因为它在创建功能时无法读取它。
如果你能添加你收到的错误,看看实际问题是什么,这也会很有帮助。
我已经使用谷歌bucket来存储结构证书,并包含在谷歌云功能中,该功能运行良好。另外,ibm还为无服务器云功能上的fabric提供了一些示例程序。