Skip to content

Installation

Install

Terminal window
# Runtime library — add to your project
npm install effortless-aws
# CLI — install globally (recommended)
npm install -g @effortless-aws/cli

Or 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 variablesAWS_ACCESS_KEY_ID + AWS_SECRET_ACCESS_KEY
  • SSOaws sso login if your org uses IAM Identity Center
  • IAM role — for CI/CD environments (GitHub Actions, etc.)

Verify with:

Terminal window
aws sts get-caller-identity

First deploy

1. Create config file

effortless.config.ts
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

src/api.ts
import { defineApi } from "effortless-aws";
export const hello = defineApi({
basePath: "/hello",
get: {
"/": async () => ({
status: 200,
body: { message: "Hello from Effortless!" },
}),
},
});

3. Deploy

Terminal window
eff deploy

That’s it. Lambda + Function URL + IAM role created in ~10 seconds.

Next steps