проверка схемы json на aws lambda

мне нужно проверить мою схему событий лямбда aws. я использовал vandium для проверки. у меня два разных случая.

  1. лямбда-функция поддерживает только один тип события.

как это

var vandium = require('vandium');

vandium.validation({
    name: vandium.types.string().required()
});

exports.handler = vandium(function (event, context, callback) {
    console.log('hello: ' + event.name);
    callback(null, 'Hello from Lambda');
});

в этом случае vandium проверяет только наличие ключа или его отсутствие. Но мне нужно проверить, присутствует ли какой-либо дополнительный ключ или нет.

  1. лямбда-функция поддерживает несколько типов событий.

как это

var vandium = require('vandium');

vandium.validation({

    operation: vandium.types.string().required(),
    name: vandium.types.string().required(), });

exports.handler = vandium(function (event, context, callback) {

    const operation = event.operation;
    switch (operation) {
        case 'test1':
            test1(event);
            break;
        case 'test2':
            test2(event);
            break;

        default:
            callback(new Error("Unrecognized operation=" + operation));
            break;
    }


    function test1(event) {
        //console.log('hello: ' + event.name);
        callback(null, 'Hello from Lambda');
    }

    function test2(event) {
        //console.log('hello: ' + event.name);
        callback(null, 'Hello from Lambda');
    }

});

в этом случае события для test1 и test2 отличаются. как это

test1{"имя":"привет","id":100}

test2{"schoolName":"threni","учитель":"abcd" }

  1. Какой лучший пакет npm для проверки правильности схемы для решения такой проблемы?
  2. подходит ли vandium для проверки json.?

person Abdul Manaf    schedule 04.09.2016    source источник
comment
Привет, вы успешно прошли проверку JSON в вашей лямбда-функции? Вы использовали ajv в конце концов?   -  person paranza    schedule 22.08.2019


Ответы (2)


вы взглянули на ajv? как в Проверка данных с помощью JSON-схемы

person adben    schedule 05.09.2016
comment
Вы получали удовольствие от использования ajv в лямбда-функции? Хотя это не ошибка, я не могу выполнить какую-либо проверку. - person paranza; 22.08.2019

тем, кому нужно проверять события в лямбда-функциях aws, поможет @middy/validator. В этом примере вам нужно выполнить шаг 1:

import validator from '@middy/validator';

Шаг 2: определить схему

const schema = {
  properties: {
    body: {
      type: 'object',
      properties: {
        name: {
          type: 'string',
        },
      },
      required: ['name'],
    },
  },
  required: ['body'],
};

Шаг 3: используйте промежуточное программное обеспечение валидатора

export const handler = Your_Lambda_Function
  .use(validator({ inputSchema: schema }));
person Mounimaz    schedule 24.05.2021