Включить прото-файл в 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 и файлом обработчика в одном каталоге.

Другие вопросы по тегам