Включить прото-файл в NodejsFunction создает целевой пакет
У меня есть лямбда-функция, которая должна возвращать сериализованную полезную нагрузку буфера протокола. Для этого мне нужен
myobject.proto
в том же каталоге, что и обработчик лямбда.
Для самой функции я использую конструкцию AWS CDK
NodejsFunction
.
new NodejsFunction(this, 'LambdaThatCreatesProtobufPayload', {
entry: './src/lambda/handlers/LambdaThatCreatesProtobufPayload.ts',
handler: 'handler',
bundling: {
minify: true,
}
});
Как я могу включить прото-файл в результирующий пакет или передать его лямбда-функции?
1 ответ
Можно объединить файл как
myobject.proto
с загрузчиком файлов Esbuild .
Настройте сборщик для использования загрузчика файлов для файлов с расширением .proto.
new NodejsFunction(this, 'LambdaThatCreatesProtobufPayload', {
entry: './src/lambda/handlers/LambdaThatCreatesProtobufPayload.ts',
handler: 'handler',
bundling: {
minify: true,
loader: { '.proto': 'file' }
}
});
Затем потребуйте файл внутри обработчика.
const pathToProto = require('./myobject.proto')
У связанного файла другое имя файла. Следовательно
pathToProto
содержит путь с новым именем файла:
./myobject-55DNWN2R.proto
В результате получается развернутая лямбда с файлом proto и файлом обработчика в одном каталоге.