forked from aws-cloudformation/cfn-lint
-
Notifications
You must be signed in to change notification settings - Fork 0
/
DeprecatedRuntimeEnd.py
39 lines (34 loc) · 1.4 KB
/
DeprecatedRuntimeEnd.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
"""
Copyright Amazon.com, Inc. or its affiliates. All Rights Reserved.
SPDX-License-Identifier: MIT-0
"""
from datetime import datetime
from cfnlint.rules.resources.lmbd.DeprecatedRuntime import DeprecatedRuntime
from cfnlint.rules import RuleMatch
class DeprecatedRuntimeEnd(DeprecatedRuntime):
"""Check if EOL Lambda Function Runtimes are used"""
id = 'E2531'
shortdesc = 'Check if EOL Lambda Function Runtimes are used'
description = (
'Check if an EOL Lambda Runtime is specified and give an error if used. '
)
source_url = (
'https://docs.aws.amazon.com/lambda/latest/dg/runtime-support-policy.html'
)
tags = ['resources', 'lambda', 'runtime']
def check_runtime(self, runtime_value, path):
"""Check if the given runtime is valid"""
matches = []
runtime = self.deprecated_runtimes.get(runtime_value)
if runtime:
if datetime.strptime(runtime['deprecated'], '%Y-%m-%d') < self.current_date:
message = 'Deprecated runtime ({0}) specified. Updating disabled since {1}. Please consider updating to {2}'
matches.append(
RuleMatch(
path,
message.format(
runtime_value, runtime['deprecated'], runtime['successor']
),
)
)
return matches