From a80ab7081600ca013adc39c620a885c2b0c1b116 Mon Sep 17 00:00:00 2001 From: hanzhou Date: Mon, 26 Nov 2018 17:30:52 +0900 Subject: [PATCH] feat(lambda): add py3.7 runtime support --- aws/resource_aws_lambda_function.go | 3 +- aws/resource_aws_lambda_function_test.go | 37 ++++++++++++++++++++++++ 2 files changed, 39 insertions(+), 1 deletion(-) diff --git a/aws/resource_aws_lambda_function.go b/aws/resource_aws_lambda_function.go index 42c4e01ab1a5..ef79333e912b 100644 --- a/aws/resource_aws_lambda_function.go +++ b/aws/resource_aws_lambda_function.go @@ -10,7 +10,7 @@ import ( "github.com/aws/aws-sdk-go/aws/arn" "github.com/aws/aws-sdk-go/aws/awserr" "github.com/aws/aws-sdk-go/service/lambda" - "github.com/mitchellh/go-homedir" + homedir "github.com/mitchellh/go-homedir" "errors" @@ -116,6 +116,7 @@ func resourceAwsLambdaFunction() *schema.Resource { lambda.RuntimeNodejs810, lambda.RuntimePython27, lambda.RuntimePython36, + lambda.RuntimePython37, }, false), }, "timeout": { diff --git a/aws/resource_aws_lambda_function_test.go b/aws/resource_aws_lambda_function_test.go index a766f686a9e4..fcfc480fad1b 100644 --- a/aws/resource_aws_lambda_function_test.go +++ b/aws/resource_aws_lambda_function_test.go @@ -1203,6 +1203,31 @@ func TestAccAWSLambdaFunction_runtimeValidation_python36(t *testing.T) { }, }) } +func TestAccAWSLambdaFunction_runtimeValidation_python37(t *testing.T) { + var conf lambda.GetFunctionOutput + + rString := acctest.RandString(8) + + funcName := fmt.Sprintf("tf_acc_lambda_func_runtime_valid_p37_%s", rString) + policyName := fmt.Sprintf("tf_acc_policy_lambda_func_runtime_valid_p37_%s", rString) + roleName := fmt.Sprintf("tf_acc_role_lambda_func_runtime_valid_p37_%s", rString) + sgName := fmt.Sprintf("tf_acc_sg_lambda_func_runtime_valid_p37_%s", rString) + + resource.ParallelTest(t, resource.TestCase{ + PreCheck: func() { testAccPreCheck(t) }, + Providers: testAccProviders, + CheckDestroy: testAccCheckLambdaFunctionDestroy, + Steps: []resource.TestStep{ + { + Config: testAccAWSLambdaConfigPython37Runtime(funcName, policyName, roleName, sgName), + Check: resource.ComposeTestCheckFunc( + testAccCheckAwsLambdaFunctionExists("aws_lambda_function.lambda_function_test", funcName, &conf), + resource.TestCheckResourceAttr("aws_lambda_function.lambda_function_test", "runtime", lambda.RuntimePython37), + ), + }, + }, + }) +} func testAccCheckLambdaFunctionDestroy(s *terraform.State) error { conn := testAccProvider.Meta().(*AWSClient).lambdaconn @@ -2023,6 +2048,18 @@ resource "aws_lambda_function" "lambda_function_test" { `, funcName) } +func testAccAWSLambdaConfigPython37Runtime(funcName, policyName, roleName, sgName string) string { + return fmt.Sprintf(baseAccAWSLambdaConfig(policyName, roleName, sgName)+` +resource "aws_lambda_function" "lambda_function_test" { + filename = "test-fixtures/lambdatest.zip" + function_name = "%s" + role = "${aws_iam_role.iam_for_lambda.arn}" + handler = "exports.example" + runtime = "python3.7" +} +`, funcName) +} + func genAWSLambdaFunctionConfig_local(filePath, roleName, funcName string) string { return fmt.Sprintf(` resource "aws_iam_role" "iam_for_lambda" {