Installation
Install
# Runtime library — add to your projectnpm install effortless-aws
# CLI — install globally (recommended)npm install -g @effortless-aws/cliOr use the CLI without installing globally via npx eff.
AWS Credentials
Effortless deploys directly to your AWS account using the AWS SDK. You need working credentials before running eff deploy.
Any standard AWS credential method works:
~/.aws/credentials— static access keys (simplest for local dev)- Environment variables —
AWS_ACCESS_KEY_ID+AWS_SECRET_ACCESS_KEY - SSO —
aws sso loginif your org uses IAM Identity Center - IAM role — for CI/CD environments (GitHub Actions, etc.)
Verify with:
aws sts get-caller-identityFirst deploy
1. Create config file
import { defineConfig } from "effortless-aws";
export default defineConfig({ name: "my-service", region: "eu-central-1", handlers: ["src/**/*.ts"],
defaults: { memory: 256, timeout: "30 seconds", runtime: "nodejs24.x", },});2. Define a handler
import { defineApi } from "effortless-aws";
export const hello = defineApi({ basePath: "/hello", get: { "/": async () => ({ status: 200, body: { message: "Hello from Effortless!" }, }), },});3. Deploy
eff deployThat’s it. Lambda + Function URL + IAM role created in ~10 seconds.
Next steps
- Definitions — all definition types and their options
- Configuration — project and per-handler config
- CLI — available commands