[英]Integrating Webpack with Auth0 or how to add additional Node.js modules to IBM Cloud Functions
我正在尝试设置我的 nodejs 后端函数以将 Auth0 用于 IAM 服务。
我可以将不使用 auth0 库的函数成功部署到我的 IBM Cloud 帐户,但是如果我尝试上传使用 auth0 库的函数,我会收到以下错误:
错误:无法创建操作“function_name”:请求内容格式错误:在输入索引 1394034(第 1 行,位置 1394035)处出现意外的输入结束,预期为“”:
我尝试在我的 webpack.config.js 文件中使用 externals:
// webpack.config.js
externals: {
auth0: "commonjs auth0"
}
// mycode.js
const ManagementClient = require('auth0').ManagementClient;
我可以成功部署该功能,但是当我调用端点时,我收到此错误:
(0 , r(...).ManagementClient) 不是构造函数
我找到了这篇文章: 使用 Docker 向 IBM Cloud Functions 添加额外的 npm 模块
基本上,如果我正确理解您的问题,您需要一个未包含在 IBM Cloud Functions 基本映像中的附加包。 此处列出了默认包含的软件包。 但是 auth0 不是列表的一部分。
因此,按照博客文章,您可以创建一个 Dockerfile。
FROM ibmfunctions/action-nodejs-v10
RUN npm install auth0
构建镜像(假设您有一个 docker 构建环境和一个可用的 Docker 帐户)并将其推送到 Dockerhub:
docker build -t your_docker_username/action-nodejs-v10-auth0 .
docker tag your_docker_username/action-nodejs-v10-auth0:latest your_docker_username/action-nodejs-v10-auth0:0.0.1
docker push your_docker_username/action-nodejs-v10-auth0:0.0.1
现在您可以创建一个 source.js 文件,其中包含
var ManagementClient = require('auth0').ManagementClient;
和你的其余代码。
ibmcloud fn action update myAuth0Function --docker your_docker_username/action-nodejs-v10-auth0:0.0.1 source.js
我希望这对你有用。 我更正了这篇文章中的一些错别字并进行了测试。 到目前为止,我可以在操作代码中使用 auth0 模块。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.