繁体   English   中英

将 Webpack 与 Auth0 集成或如何向 IBM Cloud Functions 添加额外的 Node.js 模块

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM