instedd / shorter

Serverless URL shortener
1 stars 1 forks source link

AWS Lambda end of support for the Go 1.x runtime #3

Open matiasgarciaisaia opened 10 months ago

matiasgarciaisaia commented 10 months ago

AWS is deprecating the Go 1.x Lambda engine, so users have to migrate to a custom runtime on Amazon Linux 2.

Shorter's SAM template is using the deprecated Go 1.x engine.

We should migrate that to the new engine.

matiasgarciaisaia commented 10 months ago

E-mail notification:

Hello,

We are contacting you as we have identified that your AWS Account currently has one or more Lambda functions using the Go 1.x runtime.

We are ending support for the Go 1.x runtime in AWS Lambda, in line with Amazon Linux AMI end of maintenance support on December 31, 2023 [1]. Lambda continues to support the Go programming language, using the provided.al2 runtime. Using the provided.al2 runtime offers several benefits over the go1.x runtime, including support for AWS Graviton2 processors and a streamlined implementation with a smaller deployment package and faster function invoke path. For more information, see our blog post [2].

As described in the Lambda runtime support policy [3], end of support for language runtimes in Lambda happens in two stages. Starting December 31, 2023, Lambda will no longer apply security patches and other updates to the Go 1.x runtime used by Lambda functions, and functions using Go 1.x will no longer be eligible for technical support. In addition, you will no longer be able to create new Lambda functions using the Go 1.x runtime. Starting January 30, 2024, you will no longer be able to update existing functions using the Go 1.x runtime.

We recommend that you upgrade your existing Go 1.x functions to the provided.al2 runtime before December 31, 2023.

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 Go 1.x runtime for the $LATEST function version. A list of your impacted Lambda functions can be found in the 'Affected resources' tab of your Personal Health Dashboard. The following command shows how to use the AWS CLI [4] to list all functions in a specific region using Go 1.x, including published function versions. To find all such functions in your account, repeat this command for each region:

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

There is a difference in Lambda billing between the go1.x runtime and the provided.al2 runtime. With the go1.x runtime, Lambda does not bill for time spent during function initialization (cold start), whereas with the provided.al2 runtime Lambda includes function initialization time in the billed function duration. Since Go functions typically initialize very quickly, and since Lambda reduces the number of initializations by re-using function execution environments for multiple function invokes, in practice the difference in your Lambda bill should be very small.

If you have any concerns or require further assistance, please contact AWS Support [5].

[1] https://aws.amazon.com/blogs/aws/update-on-amazon-linux-ami-end-of-life/
[2] https://aws.amazon.com/blogs/compute/migrating-aws-lambda-functions-from-the-go1-x-runtime-to-the-custom-runtime-on-amazon-linux-2/
[3] https://docs.aws.amazon.com/lambda/latest/dg/runtime-support-policy.html
[4] https://aws.amazon.com/cli/
[5] https://aws.amazon.com/support

Sincerely,
Amazon Web Services