buildkite/buildkite-agent-scaler

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

mefellows opened this issue · 4 comments

The go1.x runtime is being deprecated in favour of the provided.al2 runtime, see this post for background.

Buildkite elastic stack users will have recently received the following email:

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/](https://protect-us.mimecast.com/s/duTpC82NgWHBrLlJHzc0sG?domain=aws.amazon.com)
[2] [https://aws.amazon.com/blogs/compute/migrating-aws-lambda-functions-from-the-go1-x-runtime-to-the-custom-runtime-on-amazon-linux-2/](https://protect-us.mimecast.com/s/PZ0eC9rNjGfr19vZcZwMF6?domain=aws.amazon.com)
[3] [https://docs.aws.amazon.com/lambda/latest/dg/runtime-support-policy.html](https://protect-us.mimecast.com/s/CI9NC0R7MESY8ZKEioRCb5?domain=docs.aws.amazon.com)
[4] [https://aws.amazon.com/cli/](https://protect-us.mimecast.com/s/AgdNCgJEy8S4kprgI6nP9J?domain=aws.amazon.com)
[5] [https://aws.amazon.com/support](https://protect-us.mimecast.com/s/zkujCjRKB5SZ9P26FgIeMq?domain=aws.amazon.com)

Thanks for letting us know @mefellows. We've received this too. We have plans to release a new version of the Elastic CI Stack with the provided.al2 runtime. We'll update this issue when we do.

You're welcome - thanks!

mpatou commented

@triarius any updates on when you plan to do it ? the EOL is planned for the end of the year it would be good to have more than a handful of weeks to be able to test it.

Fixed in v1.7.0