middyjs / middy

🛵 The stylish Node.js middleware engine for AWS Lambda 🛵

Home Page:https://middy.js.org

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Minor issue with powertools documentation

cmann50 opened this issue · comments

It looks like the docs are wrong for the Powertools middleware. Powertools is looking for serviceName but the middy documentation example usage on this page says to pass in 'service' not 'serviceName': https://middy.js.org/docs/integrations/lambda-powertools

In @aws-lambda-powertools, line 355 on Logger.js destructures the options object:

const { logLevel, serviceName, sampleRateValue, logFormatter, customConfigService, persistentLogAttributes, environment, } = options;
import middy from '@middy/core';
import { Logger, injectLambdaContext } from '@aws-lambda-powertools/logger';

const logger = new Logger({ service: 'serverlessAirline' });

So when we log it shows: "service":"service_undefined"

{"level":"INFO","message":"[INDEX].js: Received event:","service":"service_undefined","timestamp":"2023-10-21T22:41:30.746Z",...}

Changing the logging statement to use serviceName fixes the issues:

{"level":"INFO","message":"[INDEX].js: Received event:","service":"adminUI","timestamp":"2023-10-21T22:42:35.306Z","version":"2.0",...}

Maybe something changed in a more recent version.

npm list @aws-lambda-powertools/logger
lambda-upload-to-s3@1.0.0 /...
└── @aws-lambda-powertools/logger@1.14.0

Here is an example to reproduce.

This is for index.js Node 18 Lambda and I am using ES6. It does not work since it uses 'service'

import middy from "@middy/core";
import { Logger, injectLambdaContext } from "@aws-lambda-powertools/logger";
const logger = new Logger({ service: "adminUI" });


export const handler = async (event, context) => {
  logger.info("[INDEX].js: Received event:", event);
};

The example is fixed by using serviceName:

import middy from "@middy/core";
import { Logger, injectLambdaContext } from "@aws-lambda-powertools/logger";
const logger = new Logger({ serviceName: "adminUI" });


export const handler = async (event, context) => {
  logger.info("[INDEX].js: Received event:", event);
};

👋 thanks for reporting the issue and for the ping.

I'll open a PR to fix it tomorrow.

Not sure it should be classified as a but though.

Sorry if it shouldn't be a bug. I wasn't sure about updating the wiki directly or what was the best procedure. It might just require updating the docs, but wasn't sure.