Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Maintenance: End Of Support of Node.js 12 runtime #1061

Closed
saragerion opened this issue Aug 15, 2022 · 7 comments · Fixed by #1190
Closed

Maintenance: End Of Support of Node.js 12 runtime #1061

saragerion opened this issue Aug 15, 2022 · 7 comments · Fixed by #1190
Assignees
Labels
completed This item is complete and has been merged/shipped deprecation This item contains code deprecation internal PRs that introduce changes in governance, tech debt and chores (linting setup, baseline, etc.)

Comments

@saragerion
Copy link
Contributor

saragerion commented Aug 15, 2022

Note
AWS Lambda has updated the table of Supported Runtimes to reflect that the deprecation has been delayed to Mar 31, 2023.


Description of the feature request

Problem statement

AWS is ending support for Node.js 12 in AWS Lambda. This follows Node.js 12 End-Of-Life (EOL) reached on April 30, 2022.
Starting November 14, 2022, Lambda will no longer apply security patches and other updates to the Node.js 12 runtime used by Lambda functions, and functions using Node.js 12 will no longer be eligible for technical support. In addition, customers will no longer be able to create new Lambda functions using the Node.js 12 runtime.
Starting December 14, 2022, customers will no longer be able to update existing functions using the Node.js 12 runtime.

Summary of the feature

Remove support and references of Node.js 12 included but not limited to:

  • CI/CD pipelines
  • Documentation (readme, docs)
  • Examples

Code examples

Benefits for you and the wider AWS community

Migration to the latest stable Node.js runtime with improved performance and new features.

Describe alternatives you've considered

N/A

Additional context

AWS recommends that customers upgrade their existing Node.js 12 functions to Node.js 16 before November 14, 2022.
End of support does not impact function execution. Customer's functions will continue to run. However, they will be running on an unsupported runtime which is no longer maintained or patched by the AWS Lambda team.

The following command shows how to use the AWS CLI to list all functions in a specific region using Node.js 12. To find all such functions in an AWS account, customers can repeat this command for each region:

aws lambda list-functions --function-version ALL --region us-east-1 --output text --query "Functions[?Runtime=='nodejs12.x'].FunctionArn"

For more information, refer to the AWS Lambda runtime deprecation policy.

Related issues, RFCs

N/A

@saragerion saragerion added utility:all triage This item has not been triaged by a maintainer, please wait labels Aug 15, 2022
@saragerion
Copy link
Contributor Author

IMPORTANT: this unit of work should be released only after the deprecation takes place for customers, so after December 14, 2022.

@ijemmy
Copy link
Contributor

ijemmy commented Aug 15, 2022

Note for implementer. Please check if we can also update the target from ES2019 to a newer version. It was implemented in this PR: #925

@dreamorosi
Copy link
Contributor

dreamorosi commented Aug 15, 2022

I think we should instead drop support at the latest on November 14 (a month before) & indicate the last release before then as the last supporting NodeJS 12. In the messaging shared via email (& that you copied above) it says that after this date it worn't be possible to create new functions using the runtime. This means we won't be able to run e2e tests after that date.

In theory we could modify our e2e tests to reuse an existing Lambda function instead of creating a new one, but personally I don't think it's worth the effort.

As additional data points:

  • The AWS SDK v3 for NodeJS will deprecate the runtime a month and half before that (1 November) - link.
  • Depending on where we stand with the upcoming utilities (Idempotency & Parameters), if we were tu support NodeJS 12 for longer, we'd be doing so without official support of the main dependency (aws-sdk).

My vote would be to align with the AWS SDK v3 timeline instead.

@dreamorosi dreamorosi added on-hold This item is on-hold and will be revisited in the future and removed triage This item has not been triaged by a maintainer, please wait labels Oct 19, 2022
@dreamorosi
Copy link
Contributor

Deprecation date has been postponed to Mar 31, 2023 so we can put this task on hold.

I have updated the issue body to reflect the change. We'll revisit this later on.

@dreamorosi
Copy link
Contributor

CDK has marked the runtime as deprecated (2.43.0): aws/aws-cdk@b8c2abf

Jest has dropped support for Node 12 with 29.x: https://github.com/facebook/jest/releases/tag/v29.0.0-alpha.0

@dreamorosi dreamorosi added internal PRs that introduce changes in governance, tech debt and chores (linting setup, baseline, etc.) deprecation This item contains code deprecation and removed utility:all labels Nov 13, 2022
@dreamorosi dreamorosi changed the title Deprecation (logger, tracer, metrics): End Of Support of Node.js 12 runtime Maintenance: End Of Support of Node.js 12 runtime Nov 14, 2022
@dreamorosi dreamorosi added confirmed The scope is clear, ready for implementation and removed on-hold This item is on-hold and will be revisited in the future labels Dec 13, 2022
@dreamorosi dreamorosi moved this from On hold to Working on it in AWS Lambda Powertools for TypeScript Dec 13, 2022
@dreamorosi
Copy link
Contributor

Hi everyone, just wanted to share that AWS Lambda Powertools for TypeScript is planning on officially dropping support for Nodejs 12.x by the end of the year. This means that v1.5.0 will be the last release that supports the runtime.

At the time of writing, AWS Lambda plans to end support for the runtime at the end of March 2023. Similar to what done by a large portion of the Nodejs ecosystem, other AWS projects like CDK and the SDK v3 have already either marked the runtime as deprecated or removed support for it.

By following this path we'll be able to continue implementing the new Parameters and Idempotency utilities, which depend on AWS SDK v3, and also continue run full integration tests on each merged PR, a process that relies on CDK.

For those of you who are still using the Nodejs 12.x runtime, we strongly recommend you to upgrade your Lambda functions to Nodejs 16.x or later.

@github-actions github-actions bot added the pending-release This item has been merged and will be released soon label Dec 13, 2022
@dreamorosi dreamorosi removed the confirmed The scope is clear, ready for implementation label Dec 14, 2022
@dreamorosi dreamorosi self-assigned this Dec 14, 2022
@dreamorosi dreamorosi linked a pull request Dec 15, 2022 that will close this issue
13 tasks
Repository owner moved this from Working on it to Coming soon in AWS Lambda Powertools for TypeScript Dec 15, 2022
@github-actions
Copy link
Contributor

⚠️ COMMENT VISIBILITY WARNING ⚠️

Comments on closed issues are hard for our team to see.
If you need more assistance, please either tag a team member or open a new issue that references this one.
If you wish to keep having a conversation with other community members under this issue feel free to do so.

@dreamorosi dreamorosi added completed This item is complete and has been merged/shipped and removed pending-release This item has been merged and will be released soon labels Jan 13, 2023
@dreamorosi dreamorosi moved this from Coming soon to Shipped in AWS Lambda Powertools for TypeScript Jan 13, 2023
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
completed This item is complete and has been merged/shipped deprecation This item contains code deprecation internal PRs that introduce changes in governance, tech debt and chores (linting setup, baseline, etc.)
Projects
None yet
Development

Successfully merging a pull request may close this issue.

3 participants