Skip to content

Commit

Permalink
ref(getting-started-docs): Migrate AWS Lambda doc to sentry main rep (#…
Browse files Browse the repository at this point in the history
…53067)

Co-authored-by: Priscila Oliveira <priscila.oliveira@sentry.io>
  • Loading branch information
Lms24 and priscilawebdev committed Jul 21, 2023
1 parent 653745a commit a00543b
Show file tree
Hide file tree
Showing 3 changed files with 134 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -67,6 +67,7 @@ export const migratedDocs = [
'ruby-rack',
'kotlin',
'node',
'node-awslambda',
'node-azurefunctions',
'node-gcpfunctions',
'node-express',
Expand Down
20 changes: 20 additions & 0 deletions static/app/gettingStartedDocs/node/awslambda.spec.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
import {render, screen} from 'sentry-test/reactTestingLibrary';

import {StepTitle} from 'sentry/components/onboarding/gettingStartedDoc/step';

import {GettingStartedWithAwsLambda, steps} from './awslambda';

describe('GettingStartedWithAwsLambda', function () {
it('renders doc correctly', function () {
const {container} = render(<GettingStartedWithAwsLambda dsn="test-dsn" />);

// Steps
for (const step of steps()) {
expect(
screen.getByRole('heading', {name: step.title ?? StepTitle[step.type]})
).toBeInTheDocument();
}

expect(container).toSnapshot();
});
});
113 changes: 113 additions & 0 deletions static/app/gettingStartedDocs/node/awslambda.tsx
Original file line number Diff line number Diff line change
@@ -0,0 +1,113 @@
import {Layout, LayoutProps} from 'sentry/components/onboarding/gettingStartedDoc/layout';
import {ModuleProps} from 'sentry/components/onboarding/gettingStartedDoc/sdkDocumentation';
import {StepType} from 'sentry/components/onboarding/gettingStartedDoc/step';
import {getUploadSourceMapsStep} from 'sentry/components/onboarding/gettingStartedDoc/utils';
import {PlatformKey} from 'sentry/data/platformCategories';
import {t, tct} from 'sentry/locale';
import {Organization} from 'sentry/types';

type StepProps = {
newOrg: boolean;
organization: Organization;
platformKey: PlatformKey;
projectId: string;
sentryInitContent: string;
};

const performanceOtherConfig = `
// Performance Monitoring
tracesSampleRate: 1.0, // Capture 100% of the transactions, reduce in production!`;

export const steps = ({
sentryInitContent,
...props
}: Partial<StepProps> = {}): LayoutProps['steps'] => [
{
type: StepType.INSTALL,
description: t('Add the Sentry Serverless SDK as a dependency:'),
configurations: [
{
language: 'bash',
code: `
# Using yarn
yarn add @sentry/serverless
# Using npm
npm install --save @sentry/serverless
`,
},
],
},
{
type: StepType.CONFIGURE,
description: (
<p>
{tct("Wrap your lambda handler with Sentry's [code:wraphandler] function:", {
code: <code />,
})}
</p>
),
configurations: [
{
language: 'javascript',
code: `
const Sentry = require("@sentry/serverless");
Sentry.AWSLambda.init({
${sentryInitContent},
});
exports.handler = Sentry.AWSLambda.wrapHandler(async (event, context) => {
// Your handler code
});
`,
},
],
},
getUploadSourceMapsStep({
guideLink: 'https://docs.sentry.io/platforms/node/sourcemaps/',
...props,
}),
{
type: StepType.VERIFY,
description: t(
"This snippet contains an intentional error and can be used as a test to make sure that everything's working as expected."
),
configurations: [
{
language: 'javascript',
code: `
exports.handler = Sentry.AWSLambda.wrapHandler(async (event, context) => {
throw new Error("This should show up in Sentry!")
});
`,
},
],
},
];

export function GettingStartedWithAwsLambda({
dsn,
organization,
newOrg,
platformKey,
projectId,
}: ModuleProps) {
const sentryInitContent: string[] = [`dsn: "${dsn}",`, performanceOtherConfig];

return (
<Layout
steps={steps({
sentryInitContent: sentryInitContent.join('\n'),
organization,
newOrg,
platformKey,
projectId,
})}
newOrg={newOrg}
platformKey={platformKey}
/>
);
}

export default GettingStartedWithAwsLambda;

0 comments on commit a00543b

Please sign in to comment.