question-mark
Stuck on an issue?

Lightrun Answers was designed to reduce the constant googling that comes with debugging 3rd party libraries. It collects links to all the places you might be looking at while hunting down a tough bug.

And, if you’re still stuck at the end, we’re happy to hop on a call to see how we can help out.

Source maps are uploaded repeatedly for each Lambda function

See original GitHub issue

Environment

How do you use Sentry? Sentry SaaS + Serverless Framework

Which SDK and version? @sentry/node@6.2.5 and @sentry/webpack-plugin@1.14.2

Issue/question

When using package.individually: true in serverless.ts, source maps for all functions are repeatedly uploaded to Sentry for every single function. (see output below)

Is there some way to configure the plugin to run just once?

Truncated output:
Source Map Upload Report
  Minified Scripts
    ~/appsyncResolver/src/functions/appsync-resolver/handler.js (sourcemap at handler.js.map)
    ~/createEmbed/src/functions/create-embed/handler.js (sourcemap at handler.js.map)
    ~/createImage/src/functions/create-image/handler.js (sourcemap at handler.js.map)
    ~/createTag/src/functions/create-tag/handler.js (sourcemap at handler.js.map)
    ~/createTrack/src/functions/create-track/handler.js (sourcemap at handler.js.map)
    ~/deleteTag/src/functions/delete-tag/handler.js (sourcemap at handler.js.map)
    ~/deleteTracks/src/functions/delete-tracks/handler.js (sourcemap at handler.js.map)
    ~/duplicateReel/src/functions/duplicate-reel/handler.js (sourcemap at handler.js.map)
    ~/getEmbed/src/functions/get-embed/handler.js (sourcemap at handler.js.map)
    ~/getReels/src/functions/get-reels/handler.js (sourcemap at handler.js.map)
    ~/getSessions/src/functions/get-sessions/handler.js (sourcemap at handler.js.map)
    ~/getTags/src/functions/get-tags/handler.js (sourcemap at handler.js.map)
    ~/getTracks/src/functions/get-tracks/handler.js (sourcemap at handler.js.map)
    ~/setTags/src/functions/set-tags/handler.js (sourcemap at handler.js.map)
    ~/updateEmbed/src/functions/update-embed/handler.js (sourcemap at handler.js.map)
    ~/updateImageProcessingStatus/src/functions/update-image-processing-status/handler.js (sourcemap at handler.js.map)
    ~/updateShareLink/src/functions/update-share-link/handler.js (sourcemap at handler.js.map)
    ~/updateTag/src/functions/update-tag/handler.js (sourcemap at handler.js.map)
    ~/updateTranscodeStatus/src/functions/update-transcode-status/handler.js (sourcemap at handler.js.map)
  Source Maps
    ~/appsyncResolver/src/functions/appsync-resolver/handler.js.map
    ~/createEmbed/src/functions/create-embed/handler.js.map
    ~/createImage/src/functions/create-image/handler.js.map
    ~/createTag/src/functions/create-tag/handler.js.map
    ~/createTrack/src/functions/create-track/handler.js.map
    ~/deleteTag/src/functions/delete-tag/handler.js.map
    ~/deleteTracks/src/functions/delete-tracks/handler.js.map
    ~/duplicateReel/src/functions/duplicate-reel/handler.js.map
    ~/getEmbed/src/functions/get-embed/handler.js.map
    ~/getReels/src/functions/get-reels/handler.js.map
    ~/getSessions/src/functions/get-sessions/handler.js.map
    ~/getTags/src/functions/get-tags/handler.js.map
    ~/getTracks/src/functions/get-tracks/handler.js.map
    ~/setTags/src/functions/set-tags/handler.js.map
    ~/updateEmbed/src/functions/update-embed/handler.js.map
    ~/updateImageProcessingStatus/src/functions/update-image-processing-status/handler.js.map
    ~/updateShareLink/src/functions/update-share-link/handler.js.map
    ~/updateTag/src/functions/update-tag/handler.js.map
> File upload complete (processing pending on server)

Source Map Upload Report
  Minified Scripts
    ~/appsyncResolver/src/functions/appsync-resolver/handler.js (sourcemap at handler.js.map)
    ~/createEmbed/src/functions/create-embed/handler.js (sourcemap at handler.js.map)
    ~/createImage/src/functions/create-image/handler.js (sourcemap at handler.js.map)
    ~/createTag/src/functions/create-tag/handler.js (sourcemap at handler.js.map)
    ~/createTrack/src/functions/create-track/handler.js (sourcemap at handler.js.map)
    ~/deleteTag/src/functions/delete-tag/handler.js (sourcemap at handler.js.map)
    ~/deleteTracks/src/functions/delete-tracks/handler.js (sourcemap at handler.js.map)
    ~/duplicateReel/src/functions/duplicate-reel/handler.js (sourcemap at handler.js.map)
    ~/getEmbed/src/functions/get-embed/handler.js (sourcemap at handler.js.map)
    ~/getReels/src/functions/get-reels/handler.js (sourcemap at handler.js.map)
    ~/getSessions/src/functions/get-sessions/handler.js (sourcemap at handler.js.map)
    ~/getTags/src/functions/get-tags/handler.js (sourcemap at handler.js.map)
    ~/getTracks/src/functions/get-tracks/handler.js (sourcemap at handler.js.map)
    ~/setTags/src/functions/set-tags/handler.js (sourcemap at handler.js.map)
    ~/updateEmbed/src/functions/update-embed/handler.js (sourcemap at handler.js.map)
    ~/updateImageProcessingStatus/src/functions/update-image-processing-status/handler.js (sourcemap at handler.js.map)
    ~/updateShareLink/src/functions/update-share-link/handler.js (sourcemap at handler.js.map)
    ~/updateTag/src/functions/update-tag/handler.js (sourcemap at handler.js.map)
    ~/updateTranscodeStatus/src/functions/update-transcode-status/handler.js (sourcemap at handler.js.map)
  Source Maps
    ~/appsyncResolver/src/functions/appsync-resolver/handler.js.map
    ~/createEmbed/src/functions/create-embed/handler.js.map
    ~/createImage/src/functions/create-image/handler.js.map
    ~/createTag/src/functions/create-tag/handler.js.map
    ~/createTrack/src/functions/create-track/handler.js.map
    ~/deleteTag/src/functions/delete-tag/handler.js.map
    ~/deleteTracks/src/functions/delete-tracks/handler.js.map
    ~/duplicateReel/src/functions/duplicate-reel/handler.js.map
    ~/getEmbed/src/functions/get-embed/handler.js.map
    ~/getReels/src/functions/get-reels/handler.js.map
    ~/getSessions/src/functions/get-sessions/handler.js.map
    ~/getTags/src/functions/get-tags/handler.js.map
    ~/getTracks/src/functions/get-tracks/handler.js.map
    ~/setTags/src/functions/set-tags/handler.js.map
    ~/updateEmbed/src/functions/update-embed/handler.js.map
    ~/updateImageProcessingStatus/src/functions/update-image-processing-status/handler.js.map
    ~/updateShareLink/src/functions/update-share-link/handler.js.map
    ~/updateTag/src/functions/update-tag/handler.js.map
> File upload complete (processing pending on server)

Source Map Upload Report
  Minified Scripts
    ~/appsyncResolver/src/functions/appsync-resolver/handler.js (sourcemap at handler.js.map)
    ~/createEmbed/src/functions/create-embed/handler.js (sourcemap at handler.js.map)
    ~/createImage/src/functions/create-image/handler.js (sourcemap at handler.js.map)
    ~/createTag/src/functions/create-tag/handler.js (sourcemap at handler.js.map)
    ~/createTrack/src/functions/create-track/handler.js (sourcemap at handler.js.map)
    ~/deleteTag/src/functions/delete-tag/handler.js (sourcemap at handler.js.map)
    ~/deleteTracks/src/functions/delete-tracks/handler.js (sourcemap at handler.js.map)
    ~/duplicateReel/src/functions/duplicate-reel/handler.js (sourcemap at handler.js.map)
    ~/getEmbed/src/functions/get-embed/handler.js (sourcemap at handler.js.map)
    ~/getReels/src/functions/get-reels/handler.js (sourcemap at handler.js.map)
    ~/getSessions/src/functions/get-sessions/handler.js (sourcemap at handler.js.map)
    ~/getTags/src/functions/get-tags/handler.js (sourcemap at handler.js.map)
    ~/getTracks/src/functions/get-tracks/handler.js (sourcemap at handler.js.map)
    ~/setTags/src/functions/set-tags/handler.js (sourcemap at handler.js.map)
    ~/updateEmbed/src/functions/update-embed/handler.js (sourcemap at handler.js.map)
    ~/updateImageProcessingStatus/src/functions/update-image-processing-status/handler.js (sourcemap at handler.js.map)
    ~/updateShareLink/src/functions/update-share-link/handler.js (sourcemap at handler.js.map)
    ~/updateTag/src/functions/update-tag/handler.js (sourcemap at handler.js.map)
    ~/updateTranscodeStatus/src/functions/update-transcode-status/handler.js (sourcemap at handler.js.map)
  Source Maps
    ~/appsyncResolver/src/functions/appsync-resolver/handler.js.map
    ~/createEmbed/src/functions/create-embed/handler.js.map
    ~/createImage/src/functions/create-image/handler.js.map
    ~/createTag/src/functions/create-tag/handler.js.map
    ~/createTrack/src/functions/create-track/handler.js.map
    ~/deleteTag/src/functions/delete-tag/handler.js.map
    ~/deleteTracks/src/functions/delete-tracks/handler.js.map
    ~/duplicateReel/src/functions/duplicate-reel/handler.js.map
    ~/getEmbed/src/functions/get-embed/handler.js.map
    ~/getReels/src/functions/get-reels/handler.js.map
    ~/getSessions/src/functions/get-sessions/handler.js.map
    ~/getTags/src/functions/get-tags/handler.js.map
    ~/getTracks/src/functions/get-tracks/handler.js.map
    ~/setTags/src/functions/set-tags/handler.js.map
    ~/updateEmbed/src/functions/update-embed/handler.js.map
    ~/updateImageProcessingStatus/src/functions/update-image-processing-status/handler.js.map
    ~/updateShareLink/src/functions/update-share-link/handler.js.map
    ~/updateTag/src/functions/update-tag/handler.js.map
> File upload complete (processing pending on server)

Source Map Upload Report
  Minified Scripts
    ~/appsyncResolver/src/functions/appsync-resolver/handler.js (sourcemap at handler.js.map)
    ~/createEmbed/src/functions/create-embed/handler.js (sourcemap at handler.js.map)
    ~/createImage/src/functions/create-image/handler.js (sourcemap at handler.js.map)
    ~/createTag/src/functions/create-tag/handler.js (sourcemap at handler.js.map)
    ~/createTrack/src/functions/create-track/handler.js (sourcemap at handler.js.map)
    ~/deleteTag/src/functions/delete-tag/handler.js (sourcemap at handler.js.map)
    ~/deleteTracks/src/functions/delete-tracks/handler.js (sourcemap at handler.js.map)
    ~/duplicateReel/src/functions/duplicate-reel/handler.js (sourcemap at handler.js.map)
    ~/getEmbed/src/functions/get-embed/handler.js (sourcemap at handler.js.map)
    ~/getReels/src/functions/get-reels/handler.js (sourcemap at handler.js.map)
    ~/getSessions/src/functions/get-sessions/handler.js (sourcemap at handler.js.map)
    ~/getTags/src/functions/get-tags/handler.js (sourcemap at handler.js.map)
    ~/getTracks/src/functions/get-tracks/handler.js (sourcemap at handler.js.map)
    ~/setTags/src/functions/set-tags/handler.js (sourcemap at handler.js.map)
    ~/updateEmbed/src/functions/update-embed/handler.js (sourcemap at handler.js.map)
    ~/updateImageProcessingStatus/src/functions/update-image-processing-status/handler.js (sourcemap at handler.js.map)
    ~/updateShareLink/src/functions/update-share-link/handler.js (sourcemap at handler.js.map)
    ~/updateTag/src/functions/update-tag/handler.js (sourcemap at handler.js.map)
    ~/updateTranscodeStatus/src/functions/update-transcode-status/handler.js (sourcemap at handler.js.map)
  Source Maps
    ~/appsyncResolver/src/functions/appsync-resolver/handler.js.map
    ~/createEmbed/src/functions/create-embed/handler.js.map
    ~/createImage/src/functions/create-image/handler.js.map
    ~/createTag/src/functions/create-tag/handler.js.map
    ~/createTrack/src/functions/create-track/handler.js.map
    ~/deleteTag/src/functions/delete-tag/handler.js.map
    ~/deleteTracks/src/functions/delete-tracks/handler.js.map
    ~/duplicateReel/src/functions/duplicate-reel/handler.js.map
    ~/getEmbed/src/functions/get-embed/handler.js.map
    ~/getReels/src/functions/get-reels/handler.js.map
    ~/getSessions/src/functions/get-sessions/handler.js.map
    ~/getTags/src/functions/get-tags/handler.js.map
    ~/getTracks/src/functions/get-tracks/handler.js.map
    ~/setTags/src/functions/set-tags/handler.js.map
    ~/updateEmbed/src/functions/update-embed/handler.js.map
    ~/updateImageProcessingStatus/src/functions/update-image-processing-status/handler.js.map
    ~/updateShareLink/src/functions/update-share-link/handler.js.map
    ~/updateTag/src/functions/update-tag/handler.js.map
    ~/updateTranscodeStatus/src/functions/update-transcode-status/handler.js.map
> Bundled 38 files for upload
> Uploaded release files to Sentry
> File upload complete (processing pending on server)

Source Map Upload Report
  Minified Scripts
    ~/appsyncResolver/src/functions/appsync-resolver/handler.js (sourcemap at handler.js.map)
    ~/createEmbed/src/functions/create-embed/handler.js (sourcemap at handler.js.map)
    ~/createImage/src/functions/create-image/handler.js (sourcemap at handler.js.map)
    ~/createTag/src/functions/create-tag/handler.js (sourcemap at handler.js.map)
    ~/createTrack/src/functions/create-track/handler.js (sourcemap at handler.js.map)
    ~/deleteTag/src/functions/delete-tag/handler.js (sourcemap at handler.js.map)
    ~/deleteTracks/src/functions/delete-tracks/handler.js (sourcemap at handler.js.map)
    ~/duplicateReel/src/functions/duplicate-reel/handler.js (sourcemap at handler.js.map)
    ~/getEmbed/src/functions/get-embed/handler.js (sourcemap at handler.js.map)
    ~/getReels/src/functions/get-reels/handler.js (sourcemap at handler.js.map)
    ~/getSessions/src/functions/get-sessions/handler.js (sourcemap at handler.js.map)
    ~/getTags/src/functions/get-tags/handler.js (sourcemap at handler.js.map)
    ~/getTracks/src/functions/get-tracks/handler.js (sourcemap at handler.js.map)
    ~/setTags/src/functions/set-tags/handler.js (sourcemap at handler.js.map)
    ~/updateEmbed/src/functions/update-embed/handler.js (sourcemap at handler.js.map)
    ~/updateImageProcessingStatus/src/functions/update-image-processing-status/handler.js (sourcemap at handler.js.map)
    ~/updateShareLink/src/functions/update-share-link/handler.js (sourcemap at handler.js.map)
    ~/updateTag/src/functions/update-tag/handler.js (sourcemap at handler.js.map)
    ~/updateTranscodeStatus/src/functions/update-transcode-status/handler.js (sourcemap at handler.js.map)
  Source Maps
    ~/appsyncResolver/src/functions/appsync-resolver/handler.js.map
    ~/createEmbed/src/functions/create-embed/handler.js.map
    ~/createImage/src/functions/create-image/handler.js.map
    ~/createTag/src/functions/create-tag/handler.js.map
    ~/createTrack/src/functions/create-track/handler.js.map
    ~/deleteTag/src/functions/delete-tag/handler.js.map
    ~/deleteTracks/src/functions/delete-tracks/handler.js.map
    ~/duplicateReel/src/functions/duplicate-reel/handler.js.map
    ~/getEmbed/src/functions/get-embed/handler.js.map
    ~/getReels/src/functions/get-reels/handler.js.map
    ~/getSessions/src/functions/get-sessions/handler.js.map
    ~/getTags/src/functions/get-tags/handler.js.map
    ~/getTracks/src/functions/get-tracks/handler.js.map
    ~/setTags/src/functions/set-tags/handler.js.map
    ~/updateEmbed/src/functions/update-embed/handler.js.map
    ~/updateImageProcessingStatus/src/functions/update-image-processing-status/handler.js.map
    ~/updateShareLink/src/functions/update-share-link/handler.js.map
    ~/updateTag/src/functions/update-tag/handler.js.map
    ~/updateTranscodeStatus/src/functions/update-transcode-status/handler.js.map
Webpack config
const path = require('path');
const slsw = require('serverless-webpack');
const nodeExternals = require('webpack-node-externals');
const TsconfigPathsPlugin = require('tsconfig-paths-webpack-plugin');
const SentryCliPlugin = require('@sentry/webpack-plugin');

module.exports = {
  context: __dirname,
  mode: slsw.lib.webpack.isLocal ? 'development' : 'production',
  entry: slsw.lib.entries,
  devtool: slsw.lib.webpack.isLocal
    ? 'eval-cheap-module-source-map'
    : 'source-map',
  resolve: {
    extensions: ['.mjs', '.json', '.ts'],
    symlinks: false,
    cacheWithContext: false,
    plugins: [
      new TsconfigPathsPlugin({
        configFile: './tsconfig.paths.json',
      }),
    ],
  },
  output: {
    libraryTarget: 'commonjs',
    path: path.join(__dirname, '.webpack'),
    filename: '[name].js',
    devtoolModuleFilenameTemplate: 'app:///[resource-path]',
  },
  optimization: {
    concatenateModules: false,
  },
  target: 'node',
  externals: [nodeExternals()],
  module: {
    rules: [
      {
        test: /\.(tsx?)$/,
        loader: 'ts-loader',
        exclude: [
          [
            path.resolve(__dirname, 'node_modules'),
            path.resolve(__dirname, '.serverless'),
            path.resolve(__dirname, '.webpack'),
          ],
        ],
        options: {
          transpileOnly: true,
          experimentalWatchApi: true,
        },
      },
    ],
  },
  plugins: [
    ...(slsw.lib.webpack.isLocal
      ? []
      : [
          new SentryCliPlugin({
            org: 'xx',
            project: 'xx',
            // release is automatic, no need to include here
            include: './.webpack',
          }),
        ]),
  ],
};

Issue Analytics

  • State:closed
  • Created 2 years ago
  • Comments:5 (2 by maintainers)

github_iconTop GitHub Comments

1reaction
ffxsamcommented, Apr 9, 2021

@kamilogorek Awesome!! And this is why I’m a Sentry customer forever. 😁 Thank you!

1reaction
kamilogorekcommented, Apr 9, 2021

Can you give 1.15.0 a try? 😃

Read more comments on GitHub >

github_iconTop Results From Across the Web

How do I prevent duplicate Lambda function invocations? - AWS
My AWS Lambda function keeps receiving more than one invocation request for a single event ... based on each service's event source mapping....
Read more >
How to enable Source Maps in AWS Lambda | by Moritz Onken
One issue we ran into repeatedly was that we couldn't easily map error stack traces back to our TypeScript source code. Since tsc...
Read more >
How to use source maps in AWS Lambda with Node.js
Once you enable source maps, the output of your build command will contain multiple files. If you bundle your function's code to the...
Read more >
Upload JavaScript Source Maps - Datadog Docs
If your front-end JavaScript source code is minified, upload your source maps to Datadog to de-obfuscate your different stack traces. For any given...
Read more >
How to Use Source Maps in TypeScript Lambda Functions ...
Having the index.js.map file in our Lambda runtime isn't sufficient to enable Source Maps. We also have to make sure the runtime knows...
Read more >

github_iconTop Related Medium Post

No results found

github_iconTop Related StackOverflow Question

No results found

github_iconTroubleshoot Live Code

Lightrun enables developers to add logs, metrics and snapshots to live code - no restarts or redeploys required.
Start Free

github_iconTop Related Reddit Thread

No results found

github_iconTop Related Hackernoon Post

No results found

github_iconTop Related Tweet

No results found

github_iconTop Related Dev.to Post

No results found

github_iconTop Related Hashnode Post

No results found