Lambda

Introduction

There are many ways to run your code on the cloud. Rise AWS Foundation purposely only provides 1 option, AWS Lambda. Lambda functions are:

lambda.updateCode

import * as aws from 'rise-aws-foundation'
const functionArn = await aws.lambda.updateCode({
    name: 'myFunctionName',
    bucket: 'myBucketName',
    filePath: '/path/to/file.zip'
})

lambda.makeLambda

import * as aws from 'rise-aws-foundation'
const lambdaCloudformation = aws.lambda.makeLambda({
    // required
    appName: 'nameOfApp',
    name: 'nameOfFunction',
    stage: 'dev',
    bucketArn: 'arn:s3:::mybucket',
    bucketKey: '/path/to/file.zip',
    permissions: [
        {
            Action: 'something',
            Resources: '*'
        }
    ],
    // optional
    env: {
        DB: 'mydb'
    },
    handler: 'src/custom.action',
    timeout: 900, // defaults to 6
    layers: ['arn:of:my:layer']
})

lambda.makeInlineLambda

import * as aws from 'rise-aws-foundation'
const code = 'module.exports.handler = async () =>  200'
const lambdaCloudformation = aws.lambda.makeLambda({
    // required
    appName: 'nameOfApp',
    name: 'nameOfFunction',
    stage: 'dev',
    code,
    permissions: [
        {
            Action: 'something',
            Resources: '*'
        }
    ],
    // optional
    env: {
        DB: 'mydb'
    },
    handler: 'src/custom.action',
    timeout: 900, // defaults to 6
    layers: ['arn:of:my:layer']
})

lambda.invokeLambda

import * as aws from 'rise-aws-foundation'

const lambdaCloudformation = await aws.lambda.invokeLambda({
    name: 'myLambda',
    payload: JSON.stringify({
        id: 100
    }),
    region: 'us-east-1
})