Kubemq aws-lambda target connector allows services using kubemq server to access aws lambda service.
The following required to run the aws-lambda target connector:
- kubemq cluster
- aws account with lambda active service
- kubemq-targets deployment
lambda target connector configuration properties:
Properties Key | Required | Description | Example |
---|---|---|---|
aws_key | yes | aws key | aws key supplied by aws |
aws_secret_key | yes | aws secret key | aws secret key supplied by aws |
region | yes | region | aws region |
token | no | aws token ("default" empty string | aws token |
Example:
bindings:
- name: kubemq-query-aws-lambda
source:
kind: kubemq.query
name: kubemq-query
properties:
address: "kubemq-cluster:50000"
client_id: "kubemq-query-aws-lambda-connector"
auth_token: ""
channel: "query.aws.lambda"
group: ""
auto_reconnect: "true"
reconnect_interval_seconds: "1"
max_reconnects: "0"
target:
kind: aws.lambda
name: aws-lambda
properties:
aws_key: "id"
aws_secret_key: 'json'
region: "region"
token: ""
List all lambdas
List Lambda:
Metadata Key | Required | Description | Possible values |
---|---|---|---|
method | yes | type of method | "list" |
Example:
{
"metadata": {
"method": "list"
},
"data": null
}
create a new lambda.
Create Lambda:
Metadata Key | Required | Description | Possible values |
---|---|---|---|
method | yes | type of method | "create" |
zip_file_name | yes | name of the zip file | "file.zip" |
handler_name | yes | lambda handler name | "handler-path" |
role | yes | aws role name | "arn:aws:iam::0000000:myRole" |
runtime | yes | lambda runtime version | see https://docs.aws.amazon.com/lambda/latest/dg/lambda-runtimes.html |
function_name | yes | lambda function name | string |
data | yes | the function code , in byte array | byte array |
memory_size | no | memory_size needed default of 256 | int |
timeout | no | timeout set for task default of 15 (Seconds) | int |
description | no | function description default of "" | string |
Example:
{
"metadata": {
"method": "create",
"zip_file_name": "myfile.zip",
"handler_name": "myhandler",
"role": "arn:aws:iam::0000000:myRole",
"runtime": "nodejs12.x",
"function_name": "testfunction",
"memory_size": "256",
"timeout": "3",
"description": "my awesome testing method"
},
"data": "ZXhwb3J0cy5oYW5kbGVyID0gYXN5bmMgKGV2ZW50KSA9PiB7CiAgICAvLyBUT0RPIGltcGxlbWVudAogICAgY29uc3QgcmVzcG9uc2UgPSB7CiAgICAgICAgc3RhdHVzQ29kZTogMjAwLAogICAgICAgIGJvZHk6IEpTT04uc3RyaW5naWZ5KCdIZWxsbyBmcm9tIExhbWJkYSEnKSwKICAgIH07CiAgICByZXR1cm4gcmVzcG9uc2U7Cn07Cg=="
}
run a specific lambda
Run Lambda:
Metadata Key | Required | Description | Possible values |
---|---|---|---|
method | yes | type of method | "run" |
function_name | yes | lambda function name | string |
data | yes | the run request code , in byte array, must be base64 encoded json | byte array |
dry-run | no | run function in dry run mode | "true", "false" |
Example:
{
"metadata": {
"method": "run",
"function_name": "testfunction",
"dry-run": "false"
},
"data": "eyJ0ZXN0IjogInRlc3QifQ=="
}
Delete Lambda:
Metadata Key | Required | Description | Possible values |
---|---|---|---|
method | yes | type of method | "delete" |
function_name | yes | lambda function name | string |
Example:
{
"metadata": {
"method": "delete",
"function_name": "testfunction"
},
"data": null
}