@@ -13,51 +13,46 @@ import (
13
13
type AwsLambdaFunctionDeprecatedRuntimeRule struct {
14
14
tflint.DefaultRule
15
15
16
- resourceType string
17
- attributeName string
18
- eosRuntimes map [string ]time.Time
19
- eolRuntimes map [string ]time.Time
16
+ resourceType string
17
+ attributeName string
18
+ deprecatedRuntimes map [string ]time.Time
20
19
21
20
Now time.Time
22
21
}
23
22
24
23
// NewAwsLambdaFunctionDeprecatedRuntimeRule returns new rule with default attributes
25
24
func NewAwsLambdaFunctionDeprecatedRuntimeRule () * AwsLambdaFunctionDeprecatedRuntimeRule {
25
+ // @see https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html
26
26
return & AwsLambdaFunctionDeprecatedRuntimeRule {
27
27
resourceType : "aws_lambda_function" ,
28
28
attributeName : "runtime" ,
29
- eosRuntimes : map [string ]time.Time {
30
- "nodejs10.x" : time .Date (2021 , time .July , 30 , 0 , 0 , 0 , 0 , time .UTC ),
31
- "nodejs12.x" : time .Date (2022 , time .November , 14 , 0 , 0 , 0 , 0 , time .UTC ),
32
- "nodejs14.x" : time .Date (2023 , time .November , 27 , 0 , 0 , 0 , 0 , time .UTC ),
33
- "nodejs16.x" : time .Date (2024 , time .March , 11 , 0 , 0 , 0 , 0 , time .UTC ),
34
- "ruby2.5" : time .Date (2021 , time .July , 30 , 0 , 0 , 0 , 0 , time .UTC ),
35
- "ruby2.7" : time .Date (2023 , time .December , 7 , 0 , 0 , 0 , 0 , time .UTC ),
36
- "python2.7" : time .Date (2021 , time .July , 15 , 0 , 0 , 0 , 0 , time .UTC ),
37
- "python3.6" : time .Date (2022 , time .July , 18 , 0 , 0 , 0 , 0 , time .UTC ),
38
- "python3.7" : time .Date (2023 , time .November , 27 , 0 , 0 , 0 , 0 , time .UTC ),
39
- "dotnetcore2.1" : time .Date (2021 , time .September , 20 , 0 , 0 , 0 , 0 , time .UTC ),
40
- "dotnetcore3.1" : time .Date (2023 , time .January , 20 , 0 , 0 , 0 , 0 , time .UTC ),
41
- "dotnet7" : time .Date (2024 , time .May , 14 , 0 , 0 , 0 , 0 , time .UTC ),
42
- "java8" : time .Date (2023 , time .December , 31 , 0 , 0 , 0 , 0 , time .UTC ),
43
- "go1.x" : time .Date (2023 , time .December , 31 , 0 , 0 , 0 , 0 , time .UTC ),
44
- "provided" : time .Date (2023 , time .December , 31 , 0 , 0 , 0 , 0 , time .UTC ),
45
- },
46
- eolRuntimes : map [string ]time.Time {
47
- "dotnetcore1.0" : time .Date (2019 , time .July , 30 , 0 , 0 , 0 , 0 , time .UTC ),
29
+ deprecatedRuntimes : map [string ]time.Time {
30
+ "nodejs16.x" : time .Date (2024 , time .June , 12 , 0 , 0 , 0 , 0 , time .UTC ),
31
+ "python3.8" : time .Date (2024 , time .October , 14 , 0 , 0 , 0 , 0 , time .UTC ),
32
+ "java8" : time .Date (2024 , time .January , 8 , 0 , 0 , 0 , 0 , time .UTC ),
33
+ "dotnet7" : time .Date (2024 , time .May , 14 , 0 , 0 , 0 , 0 , time .UTC ),
34
+ "dotnet6" : time .Date (2024 , time .November , 12 , 0 , 0 , 0 , 0 , time .UTC ),
35
+ "go1.x" : time .Date (2024 , time .January , 8 , 0 , 0 , 0 , 0 , time .UTC ),
36
+ "provided" : time .Date (2024 , time .January , 8 , 0 , 0 , 0 , 0 , time .UTC ),
37
+ // Already reached end of support
38
+ "nodejs14.x" : time .Date (2023 , time .December , 4 , 0 , 0 , 0 , 0 , time .UTC ),
39
+ "python3.7" : time .Date (2023 , time .December , 4 , 0 , 0 , 0 , 0 , time .UTC ),
40
+ "ruby2.7" : time .Date (2023 , time .November , 27 , 0 , 0 , 0 , 0 , time .UTC ),
41
+ "dotnetcore3.1" : time .Date (2023 , time .April , 3 , 0 , 0 , 0 , 0 , time .UTC ),
42
+ "nodejs12.x" : time .Date (2023 , time .March , 31 , 0 , 0 , 0 , 0 , time .UTC ),
43
+ "python3.6" : time .Date (2022 , time .July , 18 , 0 , 0 , 0 , 0 , time .UTC ),
44
+ "dotnet5.0" : time .Date (2022 , time .May , 10 , 0 , 0 , 0 , 0 , time .UTC ),
45
+ "dotnetcore2.1" : time .Date (2022 , time .January , 5 , 0 , 0 , 0 , 0 , time .UTC ),
46
+ "nodejs10.x" : time .Date (2021 , time .July , 30 , 0 , 0 , 0 , 0 , time .UTC ),
47
+ "ruby2.5" : time .Date (2021 , time .July , 30 , 0 , 0 , 0 , 0 , time .UTC ),
48
+ "python2.7" : time .Date (2021 , time .July , 15 , 0 , 0 , 0 , 0 , time .UTC ),
49
+ "nodejs8.10" : time .Date (2020 , time .March , 6 , 0 , 0 , 0 , 0 , time .UTC ),
50
+ "nodejs4.3" : time .Date (2020 , time .March , 5 , 0 , 0 , 0 , 0 , time .UTC ),
51
+ "nodejs4.3-edge" : time .Date (2020 , time .March , 5 , 0 , 0 , 0 , 0 , time .UTC ),
52
+ "nodejs6.10" : time .Date (2019 , time .August , 12 , 0 , 0 , 0 , 0 , time .UTC ),
53
+ "dotnetcore1.0" : time .Date (2019 , time .July , 27 , 0 , 0 , 0 , 0 , time .UTC ),
48
54
"dotnetcore2.0" : time .Date (2019 , time .May , 30 , 0 , 0 , 0 , 0 , time .UTC ),
49
55
"nodejs" : time .Date (2016 , time .October , 31 , 0 , 0 , 0 , 0 , time .UTC ),
50
- "nodejs4.3" : time .Date (2020 , time .March , 06 , 0 , 0 , 0 , 0 , time .UTC ),
51
- "nodejs4.3-edge" : time .Date (2019 , time .April , 30 , 0 , 0 , 0 , 0 , time .UTC ),
52
- "nodejs6.10" : time .Date (2019 , time .August , 12 , 0 , 0 , 0 , 0 , time .UTC ),
53
- "nodejs8.10" : time .Date (2020 , time .March , 06 , 0 , 0 , 0 , 0 , time .UTC ),
54
- "nodejs10.x" : time .Date (2021 , time .August , 30 , 0 , 0 , 0 , 0 , time .UTC ),
55
- "nodejs12.x" : time .Date (2022 , time .December , 14 , 0 , 0 , 0 , 0 , time .UTC ),
56
- "ruby2.5" : time .Date (2021 , time .August , 30 , 0 , 0 , 0 , 0 , time .UTC ),
57
- "python2.7" : time .Date (2021 , time .September , 30 , 0 , 0 , 0 , 0 , time .UTC ),
58
- "python3.6" : time .Date (2022 , time .August , 17 , 0 , 0 , 0 , 0 , time .UTC ),
59
- "dotnetcore2.1" : time .Date (2021 , time .October , 30 , 0 , 0 , 0 , 0 , time .UTC ),
60
- "dotnetcore3.1" : time .Date (2023 , time .February , 20 , 0 , 0 , 0 , 0 , time .UTC ),
61
56
},
62
57
Now : time .Now ().UTC (),
63
58
}
@@ -99,13 +94,7 @@ func (r *AwsLambdaFunctionDeprecatedRuntimeRule) Check(runner tflint.Runner) err
99
94
}
100
95
101
96
err := runner .EvaluateExpr (attribute .Expr , func (val string ) error {
102
- if _ , ok := r .eolRuntimes [val ]; ok && r .Now .After (r .eolRuntimes [val ]) {
103
- runner .EmitIssue (
104
- r ,
105
- fmt .Sprintf ("The \" %s\" runtime has reached the end of life" , val ),
106
- attribute .Expr .Range (),
107
- )
108
- } else if _ , ok := r .eosRuntimes [val ]; ok && r .Now .After (r .eosRuntimes [val ]) {
97
+ if _ , ok := r .deprecatedRuntimes [val ]; ok && r .Now .After (r .deprecatedRuntimes [val ]) {
109
98
runner .EmitIssue (
110
99
r ,
111
100
fmt .Sprintf ("The \" %s\" runtime has reached the end of support" , val ),
0 commit comments