Skip to content

AWS Lambda Plugin for Gloo

Description

The AWS Lambda Plugin for Gloo brings the power of AWS Lambda to the Envoy Proxy. This plugin allows HTTP requests routed by Envoy to become AWS Lambda invocations, automatically signed by AWS' API Signature signing process.

This allows clients to make regular HTTP requests (including GET requests - even from a browser) through Gloo that automatically route to AWS Lambda invocations. Clients are abstracted from the AWS API without having to specify any AWS-specific headers or signature in their requests. POSTs containing a JSON body will become the payload for the Lambda function.

To jump right in, follow the AWS Lambda Getting Started Guide.

Upstream Spec Configuration

The Upstream Type for AWS Lambda upstreams is aws.

The upstream spec for AWS Lambda Upstreams has the following structure:

region: string
secret_ref: string
Field Type Description
region string The AWS Region this upstream points to. The credentials specified in the secret must be valid for this region. required
secret_ref string The AWS Credentials this upstream points to. The credentials specified in the secret must be valid for this region. required

The secret_ref must be the name of a secret in Gloo's secret storage backend.

Secrets Configuration

The content of the secret must follow the format:

access_key: <aws-access-key-id>
secret_key: <aws-secret-access-key>

Function Spec Configuration

The AWS Lambda Upstream Type supports functions (and is in fact useless without them). The function spec has the following stucture:

function_name: string
qualifier: string
Field Type Label Description
function_name string The Lambda Function Name used to invoke the function. required
qualifier string The Lambda Function Qualifier (Version) used to invoke the function. If empty, the $LATEST version will be used.

Example Lambda Upstream

The following is an example of a valid Lambda Upstream:

name: my-lambda-upstream
spec:
  region: "us-east-1"
  secret_ref: "my-aws-secrets"
type: aws
functions:
- name: func1
  spec:
    function_name: func1
- name: func2
  spec:
    function_name: func2
    qualifier: v1

Discovery

The Gloo Function Discovery Service will automatically discover functions for Lambda upstreams if it is running. Simply create a Lambda upstream for Gloo to track, and the function discovery service will auomatically populate it with your available lambda functions and keep it up to date with your AWS account.