2929 Alias ,
3030 Version ,
3131 AutoVersion ,
32+ BlueGreenVersions ,
3233 BlueGreenAliases ,
3334 BlueGreenAliasConfiguration ,
3435)
370371 },
371372}
372373
374+ EXPECTED_BLUEGREENVERSIONS_TEMPLATE = {
375+ "MypylambdaVersion1" : {
376+ "Properties" : {
377+ "Description" : "version 1 of mypylambda lambda" ,
378+ "FunctionName" : {"Fn::GetAtt" : ["Mypylambda" , "Arn" ]},
379+ },
380+ "Type" : "AWS::Lambda::Version" ,
381+ },
382+ "MypylambdaVersion2" : {
383+ "Properties" : {
384+ "Description" : "version 2 of mypylambda lambda" ,
385+ "FunctionName" : {"Fn::GetAtt" : ["Mypylambda" , "Arn" ]},
386+ },
387+ "Type" : "AWS::Lambda::Version" ,
388+ },
389+ "MypylambdaVersion3" : {
390+ "Properties" : {
391+ "Description" : "version 3 of mypylambda lambda" ,
392+ "FunctionName" : {"Fn::GetAtt" : ["Mypylambda" , "Arn" ]},
393+ },
394+ "Type" : "AWS::Lambda::Version" ,
395+ },
396+ }
397+
373398EXPECTED_BLUEGREENALIASES_DEFAULT_TEMPLATE = {
374399 "MypylambdaBlueAlias" : {
375400 "Properties" : {
376401 "Name" : "MypylambdaBlueAlias" ,
377402 "Description" : "blue alias for mypylambda lambda" ,
378403 "FunctionName" : {"Fn::GetAtt" : ["Mypylambda" , "Arn" ]},
379- "FunctionVersion" : {"Ref " : "MypylambdaVersion1" },
404+ "FunctionVersion" : {"Fn::GetAtt " : [ "MypylambdaVersion1" , "Version" ] },
380405 },
381406 "Type" : "AWS::Lambda::Alias" ,
382407 },
385410 "Name" : "MypylambdaGreenAlias" ,
386411 "Description" : "green alias for mypylambda lambda" ,
387412 "FunctionName" : {"Fn::GetAtt" : ["Mypylambda" , "Arn" ]},
388- "FunctionVersion" : {"Ref " : "MypylambdaVersion2" },
413+ "FunctionVersion" : {"Fn::GetAtt " : [ "MypylambdaVersion2" , "Version" ] },
389414 },
390415 "Type" : "AWS::Lambda::Alias" ,
391416 },
397422 "Name" : "prod" ,
398423 "Description" : "prod alias for mypylambda lambda" ,
399424 "FunctionName" : {"Fn::GetAtt" : ["Mypylambda" , "Arn" ]},
400- "FunctionVersion" : {"Ref " : "MypylambdaVersion1" },
425+ "FunctionVersion" : {"Fn::GetAtt " : [ "MypylambdaVersion1" , "Version" ] },
401426 "ProvisionedConcurrencyConfig" : {"ProvisionedConcurrentExecutions" : 1 },
402427 "RoutingConfig" : {
403428 "AdditionalVersionWeights" : [
417442 "Name" : "beta" ,
418443 "Description" : "beta alias for mypylambda lambda" ,
419444 "FunctionName" : {"Fn::GetAtt" : ["Mypylambda" , "Arn" ]},
420- "FunctionVersion" : {"Ref " : "MypylambdaVersion2" },
445+ "FunctionVersion" : {"Fn::GetAtt " : [ "MypylambdaVersion2" , "Version" ] },
421446 "ProvisionedConcurrencyConfig" : {"ProvisionedConcurrentExecutions" : 1 },
422447 "RoutingConfig" : {
423448 "AdditionalVersionWeights" : [
@@ -837,6 +862,20 @@ def test_autoversion(stack: Stack, simple_lambda_function: PyFunction) -> None:
837862 assert auto_version .latest .name == "mypylambdaVersion3"
838863
839864
865+ def test_bluegreenversions (stack : Stack , simple_lambda_function : PyFunction ) -> None :
866+ """Test BlueGreenVersions creation."""
867+ versions = BlueGreenVersions (
868+ blue_version = 2 ,
869+ green_version = 3 ,
870+ lambda_function = simple_lambda_function ,
871+ )
872+ stack .add (versions )
873+ print (stack .export ()["Resources" ])
874+ assert stack .export ()["Resources" ] == EXPECTED_BLUEGREENVERSIONS_TEMPLATE
875+ assert versions .blue .name == "mypylambdaVersion2"
876+ assert versions .green .name == "mypylambdaVersion3"
877+
878+
840879def test_bluegreenaliases_default (
841880 stack : Stack , simple_lambda_function : PyFunction
842881) -> None :
@@ -846,8 +885,8 @@ def test_bluegreenaliases_default(
846885 lambda_function = simple_lambda_function ,
847886 )
848887 aliases = BlueGreenAliases (
849- blue_config = BlueGreenAliasConfiguration (version = auto_version .previous . ref ),
850- green_config = BlueGreenAliasConfiguration (version = auto_version .latest . ref ),
888+ blue_config = BlueGreenAliasConfiguration (version = auto_version .previous ),
889+ green_config = BlueGreenAliasConfiguration (version = auto_version .latest ),
851890 lambda_function = simple_lambda_function ,
852891 )
853892 stack .add (aliases )
@@ -865,7 +904,7 @@ def test_bluegreenaliases(stack: Stack, simple_lambda_function: PyFunction) -> N
865904 )
866905 aliases = BlueGreenAliases (
867906 blue_config = BlueGreenAliasConfiguration (
868- version = auto_version .previous . ref ,
907+ version = auto_version .previous ,
869908 name = "prod" ,
870909 provisioned_concurrency_config = ProvisionedConcurrencyConfiguration (
871910 ProvisionedConcurrentExecutions = 1
@@ -879,7 +918,7 @@ def test_bluegreenaliases(stack: Stack, simple_lambda_function: PyFunction) -> N
879918 ),
880919 ),
881920 green_config = BlueGreenAliasConfiguration (
882- version = auto_version .latest . ref ,
921+ version = auto_version .latest ,
883922 name = "beta" ,
884923 provisioned_concurrency_config = ProvisionedConcurrencyConfiguration (
885924 ProvisionedConcurrentExecutions = 1
0 commit comments