|
1 |
| -import { countResources, expect, haveResource } from '@aws-cdk/assert'; |
| 1 | +import { countResources, expect, haveResource, ResourcePart } from '@aws-cdk/assert'; |
2 | 2 | import events = require('@aws-cdk/aws-events');
|
3 | 3 | import iam = require('@aws-cdk/aws-iam');
|
4 | 4 | import sqs = require('@aws-cdk/aws-sqs');
|
@@ -911,6 +911,176 @@ export = {
|
911 | 911 | test.done();
|
912 | 912 | },
|
913 | 913 |
|
| 914 | + 'default function with Active tracing'(test: Test) { |
| 915 | + const stack = new cdk.Stack(); |
| 916 | + |
| 917 | + new lambda.Function(stack, 'MyLambda', { |
| 918 | + code: new lambda.InlineCode('foo'), |
| 919 | + handler: 'index.handler', |
| 920 | + runtime: lambda.Runtime.NodeJS610, |
| 921 | + tracing: lambda.Tracing.Active |
| 922 | + }); |
| 923 | + |
| 924 | + expect(stack).to(haveResource('AWS::IAM::Policy', { |
| 925 | + "PolicyDocument": { |
| 926 | + "Statement": [ |
| 927 | + { |
| 928 | + "Action": [ |
| 929 | + "xray:PutTraceSegments", |
| 930 | + "xray:PutTelemetryRecords" |
| 931 | + ], |
| 932 | + "Effect": "Allow", |
| 933 | + "Resource": "*" |
| 934 | + } |
| 935 | + ], |
| 936 | + "Version": "2012-10-17" |
| 937 | + }, |
| 938 | + "PolicyName": "MyLambdaServiceRoleDefaultPolicy5BBC6F68", |
| 939 | + "Roles": [ |
| 940 | + { |
| 941 | + "Ref": "MyLambdaServiceRole4539ECB6" |
| 942 | + } |
| 943 | + ] |
| 944 | + })); |
| 945 | + |
| 946 | + expect(stack).to(haveResource('AWS::Lambda::Function', { |
| 947 | + "Properties": { |
| 948 | + "Code": { |
| 949 | + "ZipFile": "foo" |
| 950 | + }, |
| 951 | + "Handler": "index.handler", |
| 952 | + "Role": { |
| 953 | + "Fn::GetAtt": [ |
| 954 | + "MyLambdaServiceRole4539ECB6", |
| 955 | + "Arn" |
| 956 | + ] |
| 957 | + }, |
| 958 | + "Runtime": "nodejs6.10", |
| 959 | + "TracingConfig": { |
| 960 | + "Mode": "Active" |
| 961 | + } |
| 962 | + }, |
| 963 | + "DependsOn": [ |
| 964 | + "MyLambdaServiceRole4539ECB6", |
| 965 | + "MyLambdaServiceRoleDefaultPolicy5BBC6F68" |
| 966 | + ] |
| 967 | + }, ResourcePart.CompleteDefinition)); |
| 968 | + |
| 969 | + test.done(); |
| 970 | + }, |
| 971 | + |
| 972 | + 'default function with PassThrough tracing'(test: Test) { |
| 973 | + const stack = new cdk.Stack(); |
| 974 | + |
| 975 | + new lambda.Function(stack, 'MyLambda', { |
| 976 | + code: new lambda.InlineCode('foo'), |
| 977 | + handler: 'index.handler', |
| 978 | + runtime: lambda.Runtime.NodeJS610, |
| 979 | + tracing: lambda.Tracing.PassThrough |
| 980 | + }); |
| 981 | + |
| 982 | + expect(stack).to(haveResource('AWS::IAM::Policy', { |
| 983 | + "PolicyDocument": { |
| 984 | + "Statement": [ |
| 985 | + { |
| 986 | + "Action": [ |
| 987 | + "xray:PutTraceSegments", |
| 988 | + "xray:PutTelemetryRecords" |
| 989 | + ], |
| 990 | + "Effect": "Allow", |
| 991 | + "Resource": "*" |
| 992 | + } |
| 993 | + ], |
| 994 | + "Version": "2012-10-17" |
| 995 | + }, |
| 996 | + "PolicyName": "MyLambdaServiceRoleDefaultPolicy5BBC6F68", |
| 997 | + "Roles": [ |
| 998 | + { |
| 999 | + "Ref": "MyLambdaServiceRole4539ECB6" |
| 1000 | + } |
| 1001 | + ] |
| 1002 | + })); |
| 1003 | + |
| 1004 | + expect(stack).to(haveResource('AWS::Lambda::Function', { |
| 1005 | + "Properties": { |
| 1006 | + "Code": { |
| 1007 | + "ZipFile": "foo" |
| 1008 | + }, |
| 1009 | + "Handler": "index.handler", |
| 1010 | + "Role": { |
| 1011 | + "Fn::GetAtt": [ |
| 1012 | + "MyLambdaServiceRole4539ECB6", |
| 1013 | + "Arn" |
| 1014 | + ] |
| 1015 | + }, |
| 1016 | + "Runtime": "nodejs6.10", |
| 1017 | + "TracingConfig": { |
| 1018 | + "Mode": "PassThrough" |
| 1019 | + } |
| 1020 | + }, |
| 1021 | + "DependsOn": [ |
| 1022 | + "MyLambdaServiceRole4539ECB6", |
| 1023 | + "MyLambdaServiceRoleDefaultPolicy5BBC6F68" |
| 1024 | + ] |
| 1025 | + }, ResourcePart.CompleteDefinition)); |
| 1026 | + |
| 1027 | + test.done(); |
| 1028 | + }, |
| 1029 | + |
| 1030 | + 'default function with Disabled tracing'(test: Test) { |
| 1031 | + const stack = new cdk.Stack(); |
| 1032 | + |
| 1033 | + new lambda.Function(stack, 'MyLambda', { |
| 1034 | + code: new lambda.InlineCode('foo'), |
| 1035 | + handler: 'index.handler', |
| 1036 | + runtime: lambda.Runtime.NodeJS610, |
| 1037 | + tracing: lambda.Tracing.Disabled |
| 1038 | + }); |
| 1039 | + |
| 1040 | + expect(stack).notTo(haveResource('AWS::IAM::Policy', { |
| 1041 | + "PolicyDocument": { |
| 1042 | + "Statement": [ |
| 1043 | + { |
| 1044 | + "Action": [ |
| 1045 | + "xray:PutTraceSegments", |
| 1046 | + "xray:PutTelemetryRecords" |
| 1047 | + ], |
| 1048 | + "Effect": "Allow", |
| 1049 | + "Resource": "*" |
| 1050 | + } |
| 1051 | + ], |
| 1052 | + "Version": "2012-10-17" |
| 1053 | + }, |
| 1054 | + "PolicyName": "MyLambdaServiceRoleDefaultPolicy5BBC6F68", |
| 1055 | + "Roles": [ |
| 1056 | + { |
| 1057 | + "Ref": "MyLambdaServiceRole4539ECB6" |
| 1058 | + } |
| 1059 | + ] |
| 1060 | + })); |
| 1061 | + |
| 1062 | + expect(stack).to(haveResource('AWS::Lambda::Function', { |
| 1063 | + "Properties": { |
| 1064 | + "Code": { |
| 1065 | + "ZipFile": "foo" |
| 1066 | + }, |
| 1067 | + "Handler": "index.handler", |
| 1068 | + "Role": { |
| 1069 | + "Fn::GetAtt": [ |
| 1070 | + "MyLambdaServiceRole4539ECB6", |
| 1071 | + "Arn" |
| 1072 | + ] |
| 1073 | + }, |
| 1074 | + "Runtime": "nodejs6.10" |
| 1075 | + }, |
| 1076 | + "DependsOn": [ |
| 1077 | + "MyLambdaServiceRole4539ECB6" |
| 1078 | + ] |
| 1079 | + }, ResourcePart.CompleteDefinition)); |
| 1080 | + |
| 1081 | + test.done(); |
| 1082 | + }, |
| 1083 | + |
914 | 1084 | };
|
915 | 1085 |
|
916 | 1086 | function newTestLambda(parent: cdk.Construct) {
|
|
0 commit comments