-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathstep-function-test.yaml
More file actions
122 lines (122 loc) · 4.05 KB
/
step-function-test.yaml
File metadata and controls
122 lines (122 loc) · 4.05 KB
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
Resources:
StateMachine<ROLE_SUFFIX-3>:
Type: AWS::StepFunctions::StateMachine
Properties:
Definition:
Comment: A test state machine for testing migration to Temporal with AI tooling
StartAt: Lambda Ingest Data
States:
Lambda Ingest Data:
Type: Task
Resource: arn:aws:states:::lambda:invoke
Output: '{% $states.result.Payload %}'
Arguments:
FunctionName: ${lambdainvoke_FunctionName_<Lambda_ID_1>}
Payload: '{% $states.input %}'
Retry:
- ErrorEquals:
- Lambda.ServiceException
- Lambda.AWSLambdaException
- Lambda.SdkClientException
- Lambda.TooManyRequestsException
IntervalSeconds: 1
MaxAttempts: 3
BackoffRate: 2
JitterStrategy: FULL
Next: Simulate Doing Stuff
Simulate Doing Stuff:
Type: Wait
Seconds: 30
Next: Lambda Final DB Write
Lambda Final DB Write:
Type: Task
Resource: arn:aws:states:::lambda:invoke
Output: '{% $states.result.Payload %}'
Arguments:
FunctionName: ${lambdainvoke_FunctionName_<Lambda_ID_2>}
Payload: '{% $states.input %}'
Retry:
- ErrorEquals:
- Lambda.ServiceException
- Lambda.AWSLambdaException
- Lambda.SdkClientException
- Lambda.TooManyRequestsException
IntervalSeconds: 1
MaxAttempts: 3
BackoffRate: 2
JitterStrategy: FULL
End: true
QueryLanguage: JSONata
DefinitionSubstitutions:
lambdainvoke_FunctionName_<Lambda_ID_1>: >-
arn:aws:lambda:us-east-2:<AWS_Account_ID>:function:step-one-test:$LATEST
lambdainvoke_FunctionName_<Lambda_ID_2>: >-
arn:aws:lambda:us-east-2:<AWS_Account_ID>:function:step-two-test:$LATEST
RoleArn:
Fn::GetAtt:
- Role-1
- Arn
StateMachineName: StateMachine<ROLE_SUFFIX-3>
StateMachineType: STANDARD
EncryptionConfiguration:
Type: AWS_OWNED_KEY
Tags:
- Key: test_creator
Value: <username>
LoggingConfiguration:
Level: 'OFF'
IncludeExecutionData: false
Role-1:
Type: AWS::IAM::Role
Properties:
RoleName: StepFunctions_IAM_ROLE_state-machine-test<ROLE_SUFFIX-4>
AssumeRolePolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Principal:
Service: states.amazonaws.com
Action: sts:AssumeRole
MaxSessionDuration: 3600
Policy-1:
Type: AWS::IAM::RolePolicy
Properties:
PolicyName: XRayAccessPolicy<POLICY_SUFFIX-1>
RoleName:
Ref: Role-1
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- xray:PutTraceSegments
- xray:PutTelemetryRecords
- xray:GetSamplingRules
- xray:GetSamplingTargets
Resource:
- '*'
Policy-2:
Type: AWS::IAM::RolePolicy
Properties:
PolicyName: LambdaInvokeScopedAccessPolicy<POLICY_SUFFIX-2>
RoleName:
Ref: Role-1
PolicyDocument:
Version: '2012-10-17'
Statement:
- Effect: Allow
Action:
- lambda:InvokeFunction
Resource:
- >-
arn:aws:lambda:us-east-2:<AWS_Account_ID>:function:step-one-test:*
- >-
arn:aws:lambda:us-east-2:<AWS_Account_ID>:function:step-two-test:*
- Effect: Allow
Action:
- lambda:InvokeFunction
Resource:
- >-
arn:aws:lambda:us-east-2:<AWS_Account_ID>:function:step-one-test
- >-
arn:aws:lambda:us-east-2:<AWS_Account_ID>:function:step-two-test