Как отслеживать заданные пользователем c события или метри c в лямбда-функции? - PullRequest
2 голосов
/ 30 апреля 2020

В настоящее время я использую AWS API Gateway + Lambda + DynamoDB для построения сервера API. (конечно, используя Serverless Framework, поскольку я использую Lambda)

Моя проблема в том, что я не знаю, как выполнять мониторинг для функций Lambda и DynamoDB для последующего анализа пользователя. Например, я могу захотеть проверить, сколько запросов сделал пользователь за один месяц (Это будет похоже на то, что в моей DynamoDB у меня есть 100 пользователей. Я хочу получить количество запросов, которые каждый пользователь сделал в этом месяце.) Или Мне может понадобиться проверить распределение запросов каждого пользователя. (Например, user1 делает 10 A-запросов, 20 B-запросов, ... и user2 делает 15 A-запросов, 30 B-запросов ... и A, B представляет разные запросы, то есть разные конечные точки API REST) ​​

Кроме того, я также хочу следить за временем отклика и ошибками, которые выдает Lambda. Кто-нибудь рекомендует какой-либо продукт или услугу, которые могут решить мою проблему?

Спасибо!

1 Ответ

2 голосов
/ 30 апреля 2020

Serverless Framework поставляется с бесплатной учетной записью Pro. Это функция под названием tagEvent, где вы можете пометить вызов парой ключ-значение. Это позволяет позже использовать обозреватель вызовов в вашей учетной записи Serverless Framework Pro, чтобы получать только элементы из указанной пары ключ-значение c.

Примером этого является:

module.exports.hello = async (event, context) => {
  // ... set up some state/custom logic
  context.serverlessSdk.tagEvent('customer-id', event.body.customerId, {
    demoUser: true,
    freeTrialExpires: '2020-09-01',
  });
  return {
    statusCode: 200,
    body: JSON.stringify({ name: 'bob' }),
  };
};

Пример обозревателя вызовов, отфильтрованный по тегу с именем user со значением charlie:

enter image description here Для получения дополнительной информации см. Официальные документы: https://www.serverless.com/framework/docs/dashboard/sdk/nodejs#tagevent

...