amazon-web-services - 如何在无服务器和 webpack 的 lambda 函数构建中使用特定版本的 aws-sdk?
问题描述
我需要使用比 lambda 函数默认提供的更高版本的 aws-sdk。我正在使用无服务器框架和 webpack 来构建我的无服务器应用程序。在无服务器中,我可以在 serverless.yml 配置中包含或排除依赖项:
package:
individually: true
include:
- node_modules/aws-sdk
所以我可以在包中提供我自己的 aws-sdk。但是在我的 webpack 配置中,我有这个配置:
externals: [
/aws-sdk/
],
它依赖于 lambda 容器上的 aws-sdk。当我删除它以不使用 lambda 提供的 aws-sdk 时,JavaScript heap out of memory
出现错误。完成这项任务的最佳方法是什么?
FATAL ERROR: Ineffective mark-compacts near heap limit Allocation
failed - JavaScript heap out of memory
1: 0x10003b125 node::Abort() [/usr/local/bin/node]
2: 0x10003b32f node::OnFatalError(char const*, char const*)
[/usr/local/bin/node]
3: 0x1001a8e85
v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char
const*, bool) [/usr/local/bin/node]
4: 0x1005742a2 v8::internal::Heap::FatalProcessOutOfMemory(char
const*) [/usr/local/bin/node]
5: 0x100576d75
v8::internal::Heap::CheckIneffectiveMarkCompact(unsigned long, double)
[/usr/local/bin/node]
6: 0x100572c1f
v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollect
.or, v8::GCCallbackFlags) [/usr/local/bin/node]
7: 0x100570df4 v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [/usr/local/bin/node]
8: 0x10057d68c v8::internal::Heap::AllocateRawWithLigthRetry(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]
9: 0x10057d70f v8::internal::Heap::AllocateRawWithRetryOrFail(int, v8::internal::AllocationSpace, v8::internal::AllocationAlignment) [/usr/local/bin/node]
10: 0x10054f594 v8::internal::Factory::NewRawTwoByteString(int, v8::internal::PretenureFlag) [/usr/local/bin/node]
11: 0x100681149 v8::internal::String::SlowFlatten(v8::internal::Handle<v8::internal::ConsString>, v8::internal::PretenureFlag) [/usr/local/bin/node]
12: 0x1001c6c1d v8::String::Utf8Length() const [/usr/local/bin/node]
13: 0x10004eaac node::Buffer::(anonymous namespace)::ByteLengthUtf8(v8::FunctionCallbackInfo<v8::Value> const&) [/usr/local/bin/node]
14: 0x10023170f v8::internal::FunctionCallbackArguments::Call(v8::internal::CallHandlerInfo*) [/usr/local/bin/node]
15: 0x100230c51 v8::internal::MaybeHandle<v8::internal::Object> v8::internal::(anonymous namespace)::HandleApiCallHelper<false>(v8::internal::Isolate*, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::HeapObject>, v8::internal::Handle<v8::internal::FunctionTemplateInfo>, v8::internal::Handle<v8::internal::Object>, v8::internal::BuiltinArguments) [/usr/local/bin/node]
16: 0x1002302f0 v8::internal::Builtin_Impl_HandleApiCall(v8::internal::BuiltinArguments, v8::internal::Isolate*) [/usr/local/bin/node]
17: 0xddb29a5be3d
18: 0xddb29a118d5
Abort trap: 6
解决方案
推荐阅读
- c# - 为什么我会得到 System.NullReferenceException:?
- java - org.glassfish.hk2.external.org.objectweb.asm.ClassReader 处的 java.lang.IllegalArgumentException:NPE
- c++ - Heap Corruption detected after Normal Block (#193) at 0x014E5A28
- c++ - 将复数分别存储为实部和虚部
- c - 有什么办法可以避免在Arduino的PROGMEM中使用数组或修改它?
- entity-framework-core - 从 NetCore 2 Newtonsoft JSON 迁移到 NetCore 3 中的新 JSON API 时添加选项
- bash - 是否可以在读取连续流的同时修改 grep 模式而不终止进程?
- json - 将 JSON 反序列化为 KeyValuePairs
- python - FileNotFoundError:[Errno 2] 没有这样的文件或目录:'transcripts/louis.txt'
- c++ - 覆盖虚函数返回类型不同且在数据结构中不是协变的