加载www.mywebsite.com/foo/bar时,bar.js中的lambda处理程序函数未被命中。为什么?

加载www.mywebsite.com/foo/bar时,bar.js中的lambda处理程序函数未被命中。为什么?,lambda,netlify,Lambda,Netlify,我正在使用Netlify。我在bar.js中创建了一个lambda处理程序函数 请参阅下面的代码以查看我尝试运行的函数。如果我去www.mywebsite.com/bar,它会运行,但当我去www.mywebsite.com/foo/bar时它不会运行 在这种情况下,“foo”将是可变的。它可能是mywebsite.com/something/bar。我无法预测第一个路径部分将是什么,但我需要使用它将其放置在端点url的“product”查询中(如下所示) 如何将处理程序添加到未知路径?我知道“

我正在使用Netlify。我在bar.js中创建了一个lambda处理程序函数

请参阅下面的代码以查看我尝试运行的函数。如果我去www.mywebsite.com/bar,它会运行,但当我去www.mywebsite.com/foo/bar时它不会运行

在这种情况下,“foo”将是可变的。它可能是mywebsite.com/something/bar。我无法预测第一个路径部分将是什么,但我需要使用它将其放置在端点url的“product”查询中(如下所示)

如何将处理程序添加到未知路径?我知道“酒吧”永远是“酒吧”,但我无法预测前面的部分

var getURL = (product) => `www.randomdatabase.com/?product=${product}`;

exports.handler = async function (event, context, callback) {
    console.log('handler in bar.js ran');
};

这可以在Netlify上使用代理重写。如果您希望同时从域的根路径运行站点,那么问题将是管理静态资产

需要一些关于CDN for Netilify如何使用其功能路径的基础知识,这可能会有所帮助

  • 您站点的Netlify上的所有函数都位于
    /.Netlify/functions/
    端点
  • 例如,没有一种使用通配符(如
    /*/bar
    )代理重写路径的方法来确定指向
    bar.js
    函数的路径。您必须让函数的端点以某个已知路径开始
您可以从根路径开始,从产品开始,但是当/如果您希望在根路径上有静态资产(如
/index.html
)时,这将产生它自己的问题,但是可以通过在重定向配置中列出所有静态资产来实现(不可缩放)

以下两个示例都说明了在路径中完成动态部分需要执行的操作

选项1:从域的根
/
\u在站点根目录中重定向

/ /index.html 200
/* /.netlify/functions/product/:splat 200
/product/* /.netlify/functions/product/:splat 200
将函数
product.js
添加到函数文件夹

exports.handler=异步函数(事件、上下文、回调){
//路径将作为`//
const pathArr=event.path.split(“/”);
const productId=pathArr[1];
log(`Product id为${productId}`);
const body=productId
?`Product id=${productId}`
:“缺少产品!”;
回调(null{
状态代码:200,
正文:`${body}`
});
};
选项2:来自域
/product/
/product
\u在站点根目录中重定向

/ /index.html 200
/* /.netlify/functions/product/:splat 200
/product/* /.netlify/functions/product/:splat 200
将函数
product.js
添加到函数文件夹

exports.handler=异步函数(事件、上下文、回调){
//路径将作为`/product输入//
const pathArr=event.path.split(“/”);
const productId=pathArr[2];
log(`Product id为${productId}`);
const body=productId
?`Product id=${productId}`
:“缺少产品!”;
回调(null{
状态代码:200,
正文:`${body}`
});
};
注意:主分支为,从根分支为