Docs / Strand / connectors/aws-lambda
AWS Lambda
Direction: Read / Write | Type: aws.lambda
Amazon Lambda connector for invoking serverless functions. Supports synchronous (request/response) and asynchronous (fire-and-forget) invocations.
Required Permissions
The IAM user or role must have the following permissions:
| Operation | Required IAM Permissions |
|---|---|
invoke |
lambda:InvokeFunction |
Tip: Scope permissions to specific function ARNs to follow the principle of least privilege.
Operations
| Operation | Direction | Description |
|---|---|---|
invoke |
Write | Invoke a Lambda function |
Connector Configuration
| Field | Required | Default | Description |
|---|---|---|---|
| Authentication Type | No | api_key |
api_key for explicit credentials, role to use the host's IAM role / default credential chain |
| Region | Yes | - | AWS region code (e.g., us-east-1) |
| Endpoint URL | No | - | Custom endpoint for a self-managed target or an AWS VPC endpoint. Leave empty for AWS. |
| Access Key ID | Conditional | - | AWS access key (encrypted). Required when Authentication Type is api_key |
| Secret Access Key | Conditional | - | AWS secret key (encrypted). Required when Authentication Type is api_key |
| Role ARN | Conditional | - | Your IAM role ARN for cross-account access via STS AssumeRole. Required when Authentication Type is role. The role must trust the Tendrl AWS account. |
| External ID | No | - | External ID for STS AssumeRole (encrypted). Recommended with role auth to prevent confused-deputy attacks. |
| Function Name | No | - | Default Lambda function name or ARN (can be overridden at node level) |
Role-Based Authentication
With role authentication you do not store static access keys; Strand authenticates using the host's default credential chain (EC2 instance profile, ECS task role, or environment credentials). You must still provide a Role ARN when creating the connector (the role should trust the Tendrl AWS account); an optional External ID hardens the trust policy.
Node Configuration
| Field | Required | Description |
|---|---|---|
| Function Name | No | Lambda function name or ARN (overrides connector default) |
| Invocation Type | No | RequestResponse (synchronous, default) or Event (asynchronous) |
Output
Synchronous (RequestResponse)
json
{
"success": true,
"status": "completed",
"data": {
"function_name": "my-function",
"response": {"result": "value"}
},
"service": "aws.lambda",
"operation": "invoke"
}
Access the Lambda response:
jinja2
{{ payload.data.response.result }}
Asynchronous (Event)
json
{
"success": true,
"status": "invoked",
"data": {
"function_name": "my-function",
"request_id": "abc-123"
},
"service": "aws.lambda",
"operation": "invoke"
}
Example
Connector Setup:
json
{
"region": "us-east-1",
"access_key_id": "AKIAIOSFODNN7EXAMPLE",
"secret_access_key": "wJalrXUtnFEMI/K7MDENG...",
"function_name": "process-order"
}
Connector Setup (role-based):
json
{
"auth_type": "role",
"region": "us-east-1",
"role_arn": "arn:aws:iam::123456789012:role/strand-access",
"function_name": "process-order"
}
Node Configuration (sync):
- Invocation Type:
RequestResponse
Node Configuration (async):
- Invocation Type:
Event
Tendrl