-
Notifications
You must be signed in to change notification settings - Fork 76
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
Update Node runtime for AWS Lambda functions #376
Comments
Node 20 will require us to move to AWS SDK v3, most likely (see https://docs.aws.amazon.com/lambda/latest/dg/lambda-nodejs.html); that is going to be painful. I poked at doing this with the team repo function and the function itself is probably not too hard to rewrite: const { CodeBuildClient, StartBuildCommand } = require("@aws-sdk/client-codebuild");
const client = new CodeBuildClient(config);
exports.handler = async function(event) {
await client.send(new StartBuildCommand({
projectName: 'sync-team',
}));
}; However in order to actually integrate this to terraform we'll need an update of the aws terraform provider, since the 4.x series doesn't seem to support nodejs20.x. I ran out of time for today to poke at this further. |
@jdno This is something I would be up to investigate. I can start sifting through the current TF codebase and identify steps needed to migrate to a more recent version of the TF provider. My only comment would be that this task is broader than the scope of this specific ticket so would it be OK if I spawn a new one that tracks the migration to 5.x Tf provider? |
Hi @geektype, Thanks for your interest in helping out, it's much appreciated. 🙂 But I fear that this might be a difficult issue for you to work on, since it's quite difficult to run Terraform without permissions. And since we need to rewrite at a minimum some of our Lambda functions, running Terraform and testing the changes on staging will probably be required. 😬 |
All lambdas migrated to node 20 👍 |
AWS has been notifying us of the upcoming end of support of the Node 16 runtime for Lambda functions. The functions will continue to work, but cannot be updated from August 2024.
We can update our functions to the latest Node 20 runtime.
Checking the AWS Health Dashboard and the code search on GitHub, we currently have four Lambda functions that are deployed using the Node 16 runtime.
Resources
Announcement from AWS
Hello,
We are contacting you as we have identified that your AWS Account currently has one or more AWS Lambda functions using the Node.js 16 runtime.
We are ending support for Node.js 16 in Lambda on June 12, 2024. This follows Node.js 16 End-Of-Life (EOL) reached on September 11, 2023 [1].
As described in the Lambda runtime support policy [2], end of support for language runtimes in Lambda happens in several stages. Starting on June 12, 2024, Lambda will no longer apply security patches and other updates to the Node.js 16 runtime used by Lambda functions, and functions using Node.js 16 will no longer be eligible for technical support. Also, Node.js 16 will no longer be available in the Console, although you can still create and update functions using Node.js 16 via AWS CloudFormation, the AWS CLI, AWS SAM, or other tools. Starting July 15, 2024, you will no longer be able to create new Lambda functions using the Node.js 16 runtime. Starting August 15, 2024, you will no longer be able to update existing functions using the Node.js 16 runtime.
We recommend that you upgrade your existing Node.js 16 functions to Node.js 20 before June 12, 2024. A list of your Node.js 16 functions can be found in the 'Affected resources' tab of the AWS Health Dashboard.
End of support does not impact function execution. Your 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.
This notification is generated for functions using the Node.js 16 runtime for the $LATEST function version. The following command shows how to use the AWS CLI [3] to list all functions in a specific region using Node.js 16, including published function versions. To find all such functions in your account, repeat this command for each Region:
aws lambda list-functions --region us-west-2 --output text --query "Functions[?Runtime=='nodejs16.x'].FunctionArn"
From 180 days before deprecation, you can also use Trusted Advisor to identify all functions using the Node.js 16 runtime, including published function versions [4].
If you have any concerns or require further assistance, please contact AWS Support [5].
[1] https://github.com/nodejs/Release
[2] https://docs.aws.amazon.com/lambda/latest/dg/runtime-support-policy.html
[3] https://aws.amazon.com/cli/
[4] https://docs.aws.amazon.com/awssupport/latest/user/security-checks.html#aws-lambda-functions-deprecated-runtimes
[5] https://aws.amazon.com/support
Sincerely,
Amazon Web Services
The text was updated successfully, but these errors were encountered: