-
Notifications
You must be signed in to change notification settings - Fork 0
/
company.team.aws_lambda.yml
84 lines (65 loc) · 2.38 KB
/
company.team.aws_lambda.yml
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
id: aws_lambda
namespace: company.team
tasks:
- id: parallel
type: io.kestra.plugin.core.flow.Parallel
tasks:
- id: lambda
type: io.kestra.plugin.aws.lambda.Invoke
functionArn: arn:aws:lambda:eu-central-1:123456789:function:demo
- id: lambda_version
type: io.kestra.plugin.aws.lambda.Invoke
functionArn: arn:aws:lambda:eu-central-1:123456789:function:ResultHandler:1
functionPayload:
your_event_input: hello
- id: lambda_alias
type: io.kestra.plugin.aws.lambda.Invoke
functionArn: arn:aws:lambda:eu-central-1:123456789:function:ResultHandler:kestra
functionPayload:
your_event_input: hey there
- id: lambda_result
type: io.kestra.plugin.scripts.shell.Commands
runner: PROCESS
commands:
- cat {{ outputs.lambda.uri }} | jq -r '.body'
extend:
title: "Microservice orchestration: invoke multiple AWS Lambda functions in
parallel"
description: >-
This flow invokes multiple AWS lambda functions in parallel. It demonstrates
how you can:
1. Invoke a Lambda function based on its ARN, including invoking a specific
`version` or `alias` of your function
2. Easily pass custom `functionPayload` in a simple dictionary format
3. Access the output of the Lambda result JSON payload and extract relevant
data using `jq`
To test this blueprint, you can create a simple function, e.g. in Python,
named `demo` as follows:
```python
import json
def lambda_handler(event, context):
print(event)
return {
'statusCode': 200,
'body': json.dumps('Hello from Lambda!')
}
```
And another one named `ResultHandler`:
```python
import json
def lambda_handler(event, context):
function_result = event['your_event_input']
return {
'body': json.dumps(function_result + ' from Kestra')
}
```
You can then create a custom version or alias for your function, if needed.
tags:
- AWS
- Serverless
ee: false
demo: false
meta_description: This flow invokes multiple AWS lambda functions in parallel.
It demonstrates how you can invoke a Lambda function based on its ARN, pass
custom `functionPayload` in a simple dictionary format, access the output of
the Lambda result JSON payload and extract relevant data using `jq` .