AWS Lambda

Sym's AWS Lambda integration let you use Sym workflows to manage resources that the Sym platform does not directly integrate with. Sym invokes your custom function with the appropriate metadata, and your function implementation then updates other systems.

Payload

The payload supplied to your Lambda is very similar to that of the Reporting module. You can see a full schema here.

Lambda Templates

Our serverless-templates repo provides a starting point for deploying a Lambda Function which can parse and process incoming payloads from Sym.

Provisioning an AWS Lambda Strategy

This section is for Sym Implementers!

To provision an AWS Lambda Strategy for use in a Flow, define the following resources in Terraform:

# We first create a Permission Context Integration to wrap
# an IAM role which has permission to invoke our Lambda.
resource "sym_integration" "lambda_context" {
  type        = "permission_context"
  name        = "lambda_permission_context"
    # Here we use Sym's AWS IAM connector to provision an IAM role.
  # You could also manually specify the ARN of an existing role.
  settings = module.runtime_connector.settings
}
  
# A Strategy uses an Integration to grant people access to Targets.
resource "sym_strategy" "lambda" {
  type           = "aws_lambda"
  integration_id = sym_integration.lambda_context.id
  targets        = [sym_target.lambda.id]
}

# A Target defines where the payload is sent.
resource "sym_target" "lambda" {
  type  = "aws_lambda_function"
  label = "My Lambda Target"

  settings = {
    arn = "arn:aws:lambda:us-east-1:123456789012:function:my-function"
  }
}

Did this page help you?