Skip to content

Manage Lambdas

The Lambdas management module allows administrators to manage serverless functions in the Qelos platform.

These operations require administrator privileges and use the Qelos Administrator SDK.

Initialization

typescript
import QelosAdministratorSDK from '@qelos/sdk/administrator';

const sdk = new QelosAdministratorSDK({
    apiKey: 'admin-api-key',
    baseUrl: 'https://api.qelos.io'
});

Lambda Operations

Get a List of Lambdas

Retrieve all lambdas for a specific source.

typescript
const lambdas = await sdk.manageLambdas.getList('sourceId');
console.log(lambdas);

Get a Single Lambda

Retrieve details of a specific lambda function.

typescript
const lambda = await sdk.manageLambdas.getLambda('sourceId', 'functionName');
console.log(lambda);

Create a Lambda

Create a new lambda function.

typescript
const newLambda = await sdk.manageLambdas.create('sourceId', {
    name: 'my-function',
    runtime: 'nodejs18.x',
    handler: 'index.handler',
    role: 'arn:aws:iam::123456789012:role/lambda-role',
    code: {
        ZipFile: 'base64-encoded-zip-file'
    },
    description: 'My lambda function',
    timeout: 30,
    memorySize: 128
});

Update a Lambda

Update an existing lambda function's configuration or code.

typescript
const updatedLambda = await sdk.manageLambdas.update('sourceId', 'functionName', {
    description: 'Updated description',
    timeout: 60,
    memorySize: 256
});

Remove a Lambda

Delete a lambda function.

typescript
await sdk.manageLambdas.remove('sourceId', 'functionName');
console.log('Lambda deleted successfully');

Supported Providers

AWS Lambda

When working with AWS Lambda functions, you can:

  • Configure runtime (Node.js, Python, Java, etc.)
  • Set memory and timeout limits
  • Update function code
  • Manage environment variables
  • Configure VPC settings
typescript
// Create AWS Lambda
const awsLambda = await sdk.manageLambdas.create('aws-source-id', {
    name: 'process-data',
    runtime: 'nodejs18.x',
    handler: 'index.handler',
    role: 'arn:aws:iam::123456789012:role/lambda-execution',
    code: {
        S3Bucket: 'my-bucket',
        S3Key: 'function.zip'
    },
    environment: {
        Variables: {
            API_URL: 'https://api.example.com',
            DEBUG: 'true'
        }
    }
});

Cloudflare Workers

For Cloudflare Workers, you can:

  • Deploy worker scripts
  • Configure bindings
  • Set up routes
  • Manage worker settings
typescript
// Create Cloudflare Worker
const worker = await sdk.manageLambdas.create('cloudflare-source-id', {
    name: 'api-proxy',
    content: 'export default { fetch() { return new Response("Hello!"); } }',
    bindings: [
        {
            type: 'kv_namespace',
            name: 'KV_NAMESPACE',
            namespace_id: 'namespace-id'
        }
    ]
});

Best Practices for Managing Lambdas

  1. Version Control - Keep your function code in version control
  2. Environment Variables - Use environment variables for configuration
  3. Error Handling - Implement proper error handling in your functions
  4. Monitoring - Set up monitoring and logging
  5. Security - Follow least privilege principle for IAM roles
  6. Testing - Test functions in a staging environment before production

Common Operations

Batch Operations

typescript
// Get all lambdas and update their memory
const lambdas = await sdk.manageLambdas.getList('sourceId');

for (const lambda of lambdas) {
    if (lambda.memorySize < 256) {
        await sdk.manageLambdas.update('sourceId', lambda.name, {
            memorySize: 256
        });
    }
}

Environment Management

typescript
// Update environment variables
await sdk.manageLambdas.update('sourceId', 'functionName', {
    environment: {
        Variables: {
            NEW_VAR: 'value',
            EXISTING_VAR: 'updated-value'
        }
    }
});

Error Handling

typescript
try {
    const lambda = await sdk.manageLambdas.getLambda('sourceId', 'functionName');
} catch (error) {
    if (error.status === 404) {
        console.log('Lambda not found');
    } else if (error.status === 403) {
        console.log('Access denied - check permissions');
    } else {
        console.error('Failed to get lambda:', error);
    }
}

Build SaaS Products Without Limits.