Cloudnudge
Trigger AWS Lambda functions and AWS Batch jobs from the VS Code sidebar.
Declare them in JSON config files; Cloudnudge lists them and runs them on click.
Credentials
Cloudnudge reads your AWS credentials automatically, in order: AWS_* environment
variables → ~/.aws/credentials / ~/.aws/config → SSO cache → EC2/ECS instance
roles. The aws CLI is not required. Files are re-read on every trigger, so
if your keys expire you can paste in fresh ones and the next run picks them up —
no IDE restart needed.
[default]
aws_access_key_id = AKIA...
aws_secret_access_key = ...
Config files
Default per-user location (available in every window):
~/.cloudnudge/aws-lambdas.json
~/.cloudnudge/aws-batch-jobs.json
Open the Cloudnudge view in the Activity Bar and click Create Config File to
scaffold a template. To use a workspace-specific file, set
cloudnudge.lambdaConfigPath / cloudnudge.batchConfigPath to a relative path (e.g.
.vscode/aws-lambdas.json).
Lambda
{
"functions": [
{
"label": "Process daily report",
"functionName": "my-report-fn",
"region": "us-east-1",
"payload": { "date": "2026-01-01" },
"invocationType": "RequestResponse",
"override": true
}
]
}
| Field |
Required |
Notes |
functionName |
yes |
Lambda function name or ARN. |
region |
yes |
The AWS region this function lives in (e.g. us-east-2). |
label |
no |
Display name in the tree (defaults to functionName). |
payload |
no |
JSON sent as the event. |
invocationType |
no |
RequestResponse (sync, default) or Event (async fire-and-forget). |
override |
no |
When true, prompts to edit the payload before each run. |
project |
no |
Groups entries sharing the value under a folder row; entries without one stay at the top level. |
destructive |
no |
When true, shows a confirmation before running. |
Batch
{
"jobs": [
{
"label": "Nightly ETL",
"jobName": "nightly-etl",
"jobQueue": "my-job-queue",
"jobDefinition": "my-job-def:1",
"region": "us-east-1",
"command": ["python", "run.py", "--full"],
"override": false
}
]
}
| Field |
Required |
Notes |
jobName |
yes |
Name for the submitted job. |
jobQueue |
yes |
Batch job queue. |
jobDefinition |
yes |
Batch job definition (name or name:revision). |
region |
yes |
The AWS region this job runs in (e.g. us-east-2). |
command |
no |
Container command override (JSON array of strings). |
label |
no |
Display name in the tree. |
override |
no |
When true, prompts to edit the command before each run. |
project |
no |
Groups jobs sharing the value under a folder row. |
destructive |
no |
When true, shows a confirmation before submitting. |
container |
no |
For multi-container ECS jobs — see below. Replaces the classic command/override. |
parameters |
no |
Map of name → value that fills Ref::name placeholders in the job definition — see below. |
Multi-container ECS jobs (container)
Job definitions built with ecsProperties can hold several containers, so an
override must target one by name. Use a container block; each property is a
{ "value": …, "override": true|false } pair, where override: true prompts you
to edit that value at trigger time.
{
"jobName": "ecs-etl",
"jobQueue": "my-job-queue",
"jobDefinition": "my-ecs-def:3",
"region": "us-east-1",
"container": {
"name": { "value": "main", "override": true },
"command": { "value": ["python", "run.py", "--full"], "override": true }
}
}
| Container field |
Required |
Notes |
name.value |
yes |
Container name to target (must match one in the job definition). |
name.override |
no |
When true, prompts to edit the name before each run. |
command.value |
no |
Command for that container (JSON array of strings). |
command.override |
no |
When true, prompts to edit the command before each run. |
Parameters (parameters)
AWS Batch parameters fill Ref::name placeholders defined in the job
definition's command. Each value is either a plain string (static) or a
{ "value": …, "override": true } object that prompts you to edit it at trigger
time. Parameters work alongside command or container (they are a separate
SubmitJob field).
{
"jobName": "nightly-etl",
"jobQueue": "my-job-queue",
"jobDefinition": "my-job-def:1",
"region": "us-east-1",
"parameters": {
"mode": "full",
"runDate": { "value": "2026-01-01", "override": true }
}
}
Notes
- Every function and job carries its own
region — there is no file-level
region. A block missing one is flagged as an error in the tree.
- In a row's description,
O↑ marks an override entry (prompts to edit before
running) and ⚠ marks a destructive entry (asks to confirm). Hover for details.
- Results and errors stream to the Cloudnudge output channel.