我有一个由DynamoDB流触发的AWS DynammoDB lambda。使用ClaudiJS在JS中完成了所有实现。使用public function handle($request, Closure $next, $guard = null)
{
$response = $next($request);
return $response
->withHeaders([
'Cache-Control' => 'no-store, no-cache, must-revalidate',
'Pragma'=> 'no-cache',
'Expires' => '0'
]);
}
}
命令部署lambda时没有问题。
问题是当使用dockerized构建服务器使用GoCD管道部署相同的函数时,在调用lambda函数时发生错误。
Route::group(['middleware' => 'my_auth'], function() {
// All your routes you want to be secure
});
现在我花了10多个小时,我不知道解决这个问题。有人可以帮助我吗?
Lambda使用Node 6.10,我使用babel转换到节点6.10。
尝试使用claudia create
和module initialization error: Error
at Error (native)
at Object.fs.openSync (fs.js:641:18)
at Object.fs.readFileSync (fs.js:509:33)
at Object.Module._extensions..js (module.js:578:20)
at Module.load (module.js:487:32)
at tryModuleLoad (module.js:446:12)
at Function.Module._load (module.js:438:3)
at Module.require (module.js:497:17)
at require (internal/module.js:20:19)
图像作为Docker的构建器图像。
答案 0 :(得分:0)
我在这个问题上花了一天多的时间。最后,我尝试了几乎所有可能的方法,最后通过从Serverless切换到ClaudiaJS来解决问题。对于每个人的使用,我将在这里提到我尝试使用结果的方法。
yarn
并且不在构建服务器上转换代码。但没有改变。最后,我切换到无服务器框架。在第一次尝试中,我使用了带有babel和没有webpack的Serverless,即使无服务器建议使用webpack。但是,当lambda与管道一起部署时,同样的问题也发生了。我更改了配置以使用无服务器的webpack。然后解决了所有问题并成功部署了lambda。这是我最后使用的webpack.config.js
。
const path = require('path');
const slsw = require('serverless-webpack');
const nodeExternals = require('webpack-node-externals');
const build = {
entry: slsw.lib.entries,
resolve: {
extensions: ['.js'],
},
target: 'node',
output: {
libraryTarget: 'commonjs',
path: path.join(__dirname, '.webpack'),
filename: '[name].js',
},
module: {
rules: [
{
test: /\.js$/,
exclude: /node_modules/,
use: [
{
loader: 'babel-loader',
},
],
},
],
},
mode: slsw.lib.webpack.isLocal ? 'development' : 'production',
optimization: {
// Do not minimize the code.
minimize: false,
},
performance: {
// Turn off size warnings for entry points
hints: false,
},
externals: [nodeExternals()],
};
module.exports = build;
答案 1 :(得分:0)
当我的无服务器实例要读取.json文件并从中提取json对象时,会发生此错误。所以我在脚本中创建了json对象作为json对象。然后一切都很好..我使用了webpack.config的基本配置
答案 2 :(得分:0)
让我在开头打个招呼,说我没有使用GoCD的特定经验,但是在其他情况下我遇到了此错误。
导致此错误的一个潜在原因是将代码部署到VM时的文件权限问题。
该错误是一般性错误,表示Lambda函数无法启动。您也可以在AWS内部收到此错误。不幸的是,您在GoCD上看到的日志记录级别似乎与AWS CloudWatch处于同一级别,这不是很好,并且不会告诉您是什么导致Lambda无法启动。您需要更多日志记录以确定您所处情况的确切原因。
如果您确实在AWS中遇到此错误,请打开Lambda函数。在AWS页面顶部,应该有一个下拉菜单,旁边有一个“测试”按钮。
打开下拉菜单,然后选择“配置测试事件”。 您将需要精心设计此测试以匹配您特定的lambda函数。接下来,选择新测试并单击“测试”按钮。 Lambda会向您显示成功或失败消息,其中包含来自呼叫的详细信息。
在我的情况下,我们在Linux机器上使用AWS sam
实用程序编写了上载脚本,并且文件权限不太正确(错误是关于“权限被拒绝,打开'/ var / task /index.js'“)。