newrelic / newrelic-lambda-cli

A CLI to install the New Relic AWS Lambda integration and layers.
https://newrelic.com/products/serverless-aws-lambda
Apache License 2.0
47 stars 53 forks source link

Python 3.7 runtime used by ingestion lambdas is going out of support on November 27, 2023 #248

Closed huonw closed 10 months ago

huonw commented 11 months ago

Description

AWS is stopping (normal) support for the Python 3.7 lambda runtime on November 27, 2023: https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html

image

(see last column, last line)

The ingestion functions currently use this runtime:

https://github.com/newrelic/newrelic-lambda-cli/blob/3732e00485dd96bd627d298477d2f3f3a8a55d8b/newrelic_lambda_cli/templates/import-template.yaml#L68

https://github.com/newrelic/newrelic-lambda-cli/blob/3732e00485dd96bd627d298477d2f3f3a8a55d8b/newrelic_lambda_cli/templates/import-template.yaml#L90

Steps to Reproduce

  1. Run newrelic-lambda integrations install ...
  2. Observe the created lambdas use the soon-to-be-unsupported Python 3.7 runtime

Expected Behaviour

The lambdas use a more recent runtime, e.g. 3.11.

Relevant Logs / Console output

N/A

Your Environment

N/A

Additional context

We get emails from AWS like (emphasis mine):

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

We are ending support for Python 3.7 in AWS Lambda. This follows Python 3.7 End-Of-Life (EOL) reached on June 27, 2023 [1].

As described in the Lambda runtime support policy [2], end of support for language runtimes in Lambda happens in two stages. Starting November 27, 2023, Lambda will no longer apply security patches and other updates to the Python 3.7 runtime used by Lambda functions, and functions using Python 3.7 will no longer be eligible for technical support. In addition, you will no longer be able to create new Lambda functions using the Python 3.7 runtime. Starting January 25, 2024, you will no longer be able to update existing functions using the Python 3.7 runtime.

We recommend that you upgrade your existing Python 3.7 functions to Python 3.11 before November 27, 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 Python 3.7 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 [3] to list all functions in a specific region using Python 3.7, 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=='python3.7'].FunctionArn"

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

[1] https://peps.python.org/pep-0537/ [2] https://docs.aws.amazon.com/lambda/latest/dg/runtime-support-policy.html [3] https://aws.amazon.com/cli/ [4] https://aws.amazon.com/support

TimPansino commented 10 months ago

@huonw The fix for this was released.