AWS Serverless Eda
zxkane/aws-skills
AWS serverless and event-driven architecture expert based on Well-Architected Framework.
Deploy an event-driven workflow that routes S3 uploads to either Lambda or Fargate via Step Functions based on file size.
$ npx skills add aws/agent-toolkit-for-aws --skill processing-s3-uploads-with-step-functions -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install aws/agent-toolkit-for-aws processing-s3-uploads-with-step-functions --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/aws/agent-toolkit-for-aws.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions .claude/skills/processing-s3-uploads-with-step-functions && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "processing-s3-uploads-with-step-functions" agent skill from https://github.com/aws/agent-toolkit-for-aws/tree/main/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions into .claude/skills/processing-s3-uploads-with-step-functions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "processing-s3-uploads-with-step-functions", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/aws/agent-toolkit-for-aws/tree/main/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functionsType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add aws/agent-toolkit-for-aws --skill processing-s3-uploads-with-step-functions -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install aws/agent-toolkit-for-aws processing-s3-uploads-with-step-functions --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aws/agent-toolkit-for-aws.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions .agents/skills/processing-s3-uploads-with-step-functions && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "processing-s3-uploads-with-step-functions" agent skill from https://github.com/aws/agent-toolkit-for-aws/tree/main/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions into .agents/skills/processing-s3-uploads-with-step-functions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "processing-s3-uploads-with-step-functions", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aws/agent-toolkit-for-aws --skill processing-s3-uploads-with-step-functions -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install aws/agent-toolkit-for-aws processing-s3-uploads-with-step-functions --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aws/agent-toolkit-for-aws.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions .cursor/skills/processing-s3-uploads-with-step-functions && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "processing-s3-uploads-with-step-functions" agent skill from https://github.com/aws/agent-toolkit-for-aws/tree/main/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions into .cursor/skills/processing-s3-uploads-with-step-functions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "processing-s3-uploads-with-step-functions", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/aws/agent-toolkit-for-aws.git --path skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add aws/agent-toolkit-for-aws --skill processing-s3-uploads-with-step-functions -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install aws/agent-toolkit-for-aws processing-s3-uploads-with-step-functions --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aws/agent-toolkit-for-aws.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions .gemini/skills/processing-s3-uploads-with-step-functions && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "processing-s3-uploads-with-step-functions" agent skill from https://github.com/aws/agent-toolkit-for-aws/tree/main/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions into .gemini/skills/processing-s3-uploads-with-step-functions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "processing-s3-uploads-with-step-functions", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install aws/agent-toolkit-for-aws processing-s3-uploads-with-step-functionsInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add aws/agent-toolkit-for-aws --skill processing-s3-uploads-with-step-functions -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/aws/agent-toolkit-for-aws.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions .github/skills/processing-s3-uploads-with-step-functions && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "processing-s3-uploads-with-step-functions" agent skill from https://github.com/aws/agent-toolkit-for-aws/tree/main/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions into .github/skills/processing-s3-uploads-with-step-functions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "processing-s3-uploads-with-step-functions", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add aws/agent-toolkit-for-aws --skill processing-s3-uploads-with-step-functions -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install aws/agent-toolkit-for-aws processing-s3-uploads-with-step-functions --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/aws/agent-toolkit-for-aws.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions .opencode/skills/processing-s3-uploads-with-step-functions && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "processing-s3-uploads-with-step-functions" agent skill from https://github.com/aws/agent-toolkit-for-aws/tree/main/skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions into .opencode/skills/processing-s3-uploads-with-step-functions/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "processing-s3-uploads-with-step-functions", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
processing-s3-uploads-with-step-functionsDeploy an event-driven workflow that routes S3 uploads to either Lambda or Fargate via Step Functions based on file size.
Processing S3 Uploads With Step Functions is an agent skill from aws/agent-toolkit-for-aws, published by the product's own GitHub organization. Deploy an event-driven workflow that routes S3 uploads to either Lambda or Fargate via Step Functions based on file size. Uses EventBridge to trigger a Step Functions state machine when objects are uploaded to S3. Small files are processed by Lambda, large files by a Fargate task. Includes VPC, ECR repository, ECS cluster, and scoped IAM roles. Trigger keywords: Step Functions, Fargate, Lambda, S3 event, EventBridge, ECS, ECR, file processing, workflow orchestration, serverless.
Its SKILL.md is about 4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 13 other files, including scripts and reference files (for example `references/ecs-task-definition.md`, `references/iam-roles.md` and `scripts/ecs-trust-policy.json`).
It sits in Backend & APIs, covering File uploads and storage, Serverless and Event-driven systems. It works with Amazon Web Services, AWS Lambda and Amazon S3. The repository describes itself as: Official, AWS-supported MCP servers, skills, and plugins to help AI agents build on AWS. The licence is Apache-2.0.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit bd49cc8. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 9 files in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
awsdockerpython3From the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
docs.aws.amazon.comdocs.docker.comFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Processing S3 Uploads With Step Functions loads about 4k tokens when it runs, and up to ~5.4k if it reads all its reference files. Until then it costs about 131 tokens; SKILL.md has 1,563 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from aws/agent-toolkit-for-aws at commit bd49cc8, republished under its Apache-2.0 licence (© aws). 1,563 words, ~3,963 tokens.
.claude/skills/processing-s3-uploads-with-step-functions/SKILL.md (or your agent's skills folder). This skill also uses 11 other files; get the full folder from GitHub.This skill deploys an event-driven workflow using AWS CLI. When a file is uploaded to an S3 bucket, EventBridge triggers a Step Functions state machine. The state machine checks the file size and routes processing to either a Lambda function (files ≤ 6 MB) or a Fargate task (files > 6 MB).
The architecture includes:
Use this skill when:
Do not use this skill when:
aws sts get-caller-identity.aws kms create-key --description "Key for CloudWatch Logs encryption" --region {region}Constraints for parameter acquisition:
Constraints:
Constraints:
aws sts get-caller-identity --query 'Account' --output textConstraints:
aws ec2 describe-vpcs --filters Name=isDefault,Values=true --query 'Vpcs[0].VpcId' --output text --region {region}aws ec2 create-default-vpc --region {region} or provide a VPC ID manuallyaws ec2 describe-subnets --filters Name=vpc-id,Values={vpc_id} --query 'Subnets[0:2].SubnetId' --output text --region {region}aws ec2 create-security-group --group-name fargate-sg --description "Security group for Fargate tasks" --vpc-id {vpc_id} --region {region}aws ec2 revoke-security-group-egress --group-id {sg_id} --ip-permissions IpProtocol=-1,IpRanges='[{CidrIp=0.0.0.0/0}]' --region {region}
Then add scoped rules:
aws ec2 authorize-security-group-egress --group-id {sg_id} --protocol tcp --port 443 --cidr 0.0.0.0/0 --region {region} and
aws ec2 authorize-security-group-egress --group-id {sg_id} --protocol udp --port 53 --cidr 0.0.0.0/0 --region {region}Constraints:
aws ecr create-repository --repository-name {ecr_repo_name} --region {region}Constraints:
You MUST verify Docker is installed by running docker --version. If Docker is not installed, instruct the user to install it from https://docs.docker.com/get-docker/ and abort until it is available
You MUST authenticate Docker with ECR:
aws ecr get-login-password --region {region} | docker login --username AWS --password-stdin {account_id}.dkr.ecr.{region}.amazonaws.com
The Dockerfile and processor code are in scripts/Dockerfile and scripts/fargate_processor.py
You MUST build and push the image from the scripts directory:
cd scripts
docker build --platform linux/amd64 -t {ecr_repo_name} .
docker tag {ecr_repo_name}:latest {account_id}.dkr.ecr.{region}.amazonaws.com/{ecr_repo_name}:latest
docker push {account_id}.dkr.ecr.{region}.amazonaws.com/{ecr_repo_name}:latest
cd ..Follow the detailed instructions in references/iam-roles.md to create all IAM roles (Lambda, ECS task execution, ECS task, Step Functions, and EventBridge roles).
Constraints:
The function code is in scripts/lambda_function.py
You MUST be in the skill root directory before packaging and creating the function
You MUST package it with: python3 -c "import zipfile,io; z=io.BytesIO(); f=zipfile.ZipFile(z,'w'); f.writestr('lambda_function.py', open('scripts/lambda_function.py').read()); f.close(); open('/tmp/lambda_function.zip','wb').write(z.getvalue())"
You MUST create the function with:
aws lambda create-function \
--function-name sfn-file-processor \
--runtime python3.12 \
--handler lambda_function.lambda_handler \
--role arn:aws:iam::{account_id}:role/sfn-lambda-role \
--zip-file fileb:///tmp/lambda_function.zip \
--timeout 60 \
--architectures x86_64 \
--region {region}You MUST verify the function was created with:
aws lambda get-function --function-name sfn-file-processor --region {region}
Constraints:
aws logs create-log-group --log-group-name /StepFunctionFargateTask --region {region}aws logs associate-kms-key --log-group-name /StepFunctionFargateTask --kms-key-arn {kms_key_arn} --region {region}Follow the detailed instructions in references/ecs-task-definition.md to create the ECS cluster and register the Fargate task definition.
Constraints:
aws s3api create-bucket --bucket {bucket_name} --region {region} --create-bucket-configuration LocationConstraint={region}--create-bucket-configuration if region is us-east-1aws s3api put-bucket-notification-configuration --bucket {bucket_name} --notification-configuration '{"EventBridgeConfiguration": {}}' --region {region}aws s3api put-bucket-encryption --bucket {bucket_name} --server-side-encryption-configuration '{"Rules":[{"ApplyServerSideEncryptionByDefault":{"SSEAlgorithm":"aws:kms"}}]}' --region {region}Constraints:
The state machine definition is in scripts/statemachine.asl.json
You MUST create a working copy and replace all placeholders:
sed -e 's|${LambdaFunction}|arn:aws:lambda:{region}:{account_id}:function:sfn-file-processor|g' \
-e 's|${Cluster}|arn:aws:ecs:{region}:{account_id}:cluster/sfn-cluster|g' \
-e 's|${TaskDefinition}|{task_definition_arn}|g' \
-e 's|${Subnet1}|{subnet1_id}|g' \
-e 's|${Subnet2}|{subnet2_id}|g' \
-e 's|${SecurityGroup}|{sg_id}|g' \
scripts/statemachine.asl.json > /tmp/statemachine.asl.jsonYou MUST create the state machine with:
aws stepfunctions create-state-machine \
--name {state_machine_name} \
--definition file:///tmp/statemachine.asl.json \
--role-arn arn:aws:iam::{account_id}:role/sfn-state-machine-role \
--type STANDARD \
--region {region}You MUST capture the stateMachineArn from the response
Constraints:
You MUST create the EventBridge rule to trigger on S3 object creation:
aws events put-rule \
--name s3-to-stepfunctions \
--event-pattern '{
"source": ["aws.s3"],
"detail-type": ["Object Created"],
"detail": {
"bucket": {
"name": ["{bucket_name}"]
}
}
}' \
--region {region}You MUST add the state machine as a target:
aws events put-targets \
--rule s3-to-stepfunctions \
--targets '[{
"Id": "StepFunctionsTarget",
"Arn": "{state_machine_arn}",
"RoleArn": "arn:aws:iam::{account_id}:role/sfn-eventbridge-role"
}]' \
--region {region}Constraints:
You MUST create a Dead Letter Queue for failed EventBridge invocations:
aws sqs create-queue --queue-name s3-to-stepfunctions-dlq --region {region}
You MUST update the EventBridge target to attach the DLQ:
aws events put-targets \
--rule s3-to-stepfunctions \
--targets '[{
"Id": "StepFunctionsTarget",
"Arn": "{state_machine_arn}",
"RoleArn": "arn:aws:iam::{account_id}:role/sfn-eventbridge-role",
"DeadLetterConfig": {
"Arn": "arn:aws:sqs:{region}:{account_id}:s3-to-stepfunctions-dlq"
}
}]' \
--region {region}You MUST create a CloudWatch alarm for Step Functions execution failures:
aws cloudwatch put-metric-alarm --alarm-name sfn-execution-failures --metric-name ExecutionsFailed --namespace AWS/States --statistic Sum --period 300 --threshold 1 --comparison-operator GreaterThanOrEqualToThreshold --evaluation-periods 1 --dimensions Name=StateMachineArn,Value={state_machine_arn} --region {region}
Constraints:
You MUST test with a small file (< 6 MB) to verify Lambda processing:
echo 'test data' > /tmp/small-file.txt
aws s3 cp /tmp/small-file.txt s3://{bucket_name}/small-file.txt --region {region}You MUST wait 15 seconds then check the Step Functions execution:
aws stepfunctions list-executions --state-machine-arn {state_machine_arn} --region {region}
You MUST verify the execution succeeded and routed to Lambda
You MUST provide a summary of all created resources including: VPC ID, subnet IDs, security group ID, ECR repo URI, ECS cluster ARN, task definition ARN, Lambda function ARN, state machine ARN, bucket name, and EventBridge rule name
aws s3api get-bucket-notification-configuration --bucket {bucket_name}aws events describe-rule --name s3-to-stepfunctions --region {region}aws ecr describe-images --repository-name {ecr_repo_name} --region {region}/StepFunctionFargateTaskaws logs tail /aws/lambda/sfn-file-processor --region {region}lambda:InvokeFunction permissioniam:PassRole for both the ECS execution role and task role ARNsaws ec2 revoke-security-group-egress --group-id {sg_id} --ip-permissions IpProtocol=-1,IpRanges='[{CidrIp=0.0.0.0/0}]' then add aws ec2 authorize-security-group-egress --group-id {sg_id} --protocol tcp --port 443 --cidr 0.0.0.0/0 and aws ec2 authorize-security-group-egress --group-id {sg_id} --protocol udp --port 53 --cidr 0.0.0.0/0. For production, consider using VPC endpoints for S3 and CloudWatch Logs instead of internet-routed traffic.aws ecr put-image-scanning-configuration --repository-name {ecr_repo_name} --image-scanning-configuration scanOnPush=true --region {region}aws s3api put-bucket-encryption --bucket {bucket_name} --server-side-encryption-configuration '{"Rules":[{"ApplyServerSideEncryptionByDefault":{"SSEAlgorithm":"aws:kms"}}]}'aws logs associate-kms-key --log-group-name /StepFunctionFargateTask --kms-key-arn <KMS_KEY_ARN>© aws, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 11 other files (scripts, references) in skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions of aws/agent-toolkit-for-aws.
Open the folder on GitHubat commit bd49cc8
Processing S3 Uploads With Step Functions next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Processing S3 Uploads With Step Functions this skillaws/agent-toolkit-for-aws | 2.8k | — | ~4k | Automated safety check: Pass | Apache-2.0 | |
| AWS Serverless Edazxkane/aws-skills | 367 | 4 repos | ~3.2k | Automated safety check: Pass | MIT | |
| AWS Serverlessdavila7/claude-code-templates | 32k | 7 repos | ~2k | Automated safety check: Pass | MIT | |
| AWS Lambda Microvmsawslabs/agent-plugins | 912 | 1 repos | ~4.1k | Automated safety check: Pass | Apache-2.0 | |
| AWS Lambdaawslabs/agent-plugins | 912 | — | ~3.1k | Automated safety check: Pass | Apache-2.0 | |
| FoundatioFoundatioFx/Foundatio | 2.1k | — | ~3.9k | Automated safety check: Pass | Apache-2.0 |
zxkane/aws-skills
AWS serverless and event-driven architecture expert based on Well-Architected Framework.
davila7/claude-code-templates
Specialized skill for building production-ready serverless applications on AWS.
awslabs/agent-plugins
Build, run, debug, and operate applications on AWS Lambda MicroVMs — Firecracker-isolated, snapshot-resumable serverless compute environments that run inside a container with up to 8-hour lifetimes.
awslabs/agent-plugins
Design, build, deploy, test, and debug serverless applications with AWS Lambda.
FoundatioFx/Foundatio
A skill your agent uses when working with Foundatio infrastructure abstractions for .NET -- caching, queuing, messaging, file storage, distributed locking, or background jobs.
DavidVujic/python-polylith
Create a Polylith base with poly create base — the entry point of a deployable application (HTTP API, CLI, message-queue consumer, AWS Lambda handler, GCP Cloud Function, scheduled job).
aws/agent-toolkit-for-aws
Entry point for AI-agent work on AWS: pick a runtime, plan a migration for existing workloads, and build an executable POC — one phased flow.
aws/agent-toolkit-for-aws
A skill your agent uses to extend an existing agent project with memory, app integration, VPC, multi-agent, migration, model, browser, code interpreter, payments, or resource removal.
aws/agent-toolkit-for-aws
Migrates vibe-coded web applications to AWS. An agent skill from aws/agent-toolkit-for-aws.
aws/agent-toolkit-for-aws
Deploys, queries, and debugs AWS Marketplace usage-based (PAYG) metering — the pipeline (ResolveCustomer, BatchMeterUsage, EventBridge via SAM) and querying/debugging metering records, statuses…
aws/agent-toolkit-for-aws
A skill your agent uses when THIS agent needs to pay for x402-protected content at runtime: hitting a paywall mid-task, settling it via AgentCore Payments, and applying operator-defined spend limits.
aws/agent-toolkit-for-aws
Manages Amazon DocumentDB end-to-end — serverless-on-8.0 cluster setup, TLS/VPC/driver config, flexible-schema and vector-search data modeling, MongoDB compatibility assessment, DMS-based migration…
Works with
Categories
Deploy an event-driven workflow that routes S3 uploads to either Lambda or Fargate via Step Functions based on file size. Processing S3 Uploads With Step Functions is an agent skill from aws/agent-toolkit-for-aws, published by the product's own GitHub organization. Deploy an event-driven workflow that routes S3 uploads to either Lambda or Fargate via Step Functions based on file size.
Processing S3 Uploads With Step Functions fits situations like: A Step Functions state machine when objects are uploaded to S3; keywords: Step Functions; file processing; workflow orchestration.
Run `npx skills add aws/agent-toolkit-for-aws --skill processing-s3-uploads-with-step-functions -a claude-code`. Or copy the skill folder (skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions in aws/agent-toolkit-for-aws) into .claude/skills/processing-s3-uploads-with-step-functions in your project. Claude Code loads it when a task matches its description.
Run `npx skills add aws/agent-toolkit-for-aws --skill processing-s3-uploads-with-step-functions -a codex`. Or copy the skill folder (skills/specialized-skills/serverless-skills/processing-s3-uploads-with-step-functions in aws/agent-toolkit-for-aws) into .agents/skills/processing-s3-uploads-with-step-functions in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add aws/agent-toolkit-for-aws --skill processing-s3-uploads-with-step-functions -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/processing-s3-uploads-with-step-functions, .gemini/skills/processing-s3-uploads-with-step-functions, .github/skills/processing-s3-uploads-with-step-functions and .opencode/skills/processing-s3-uploads-with-step-functions in your project.
Going by SKILL.md and its folder, Processing S3 Uploads With Step Functions needs Python for the scripts in its folder and the command-line tools its instructions call (aws, docker and python3). Our summary lists: Python 3; Docker.
SKILL.md names 2 domains. As links in the text: docs.aws.amazon.com and docs.docker.com. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Processing S3 Uploads With Step Functions is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 4k tokens (SKILL.md is roughly 16k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 1.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Processing S3 Uploads With Step Functions: AWS Serverless Eda (zxkane/aws-skills, 367 stars), AWS Serverless (davila7/claude-code-templates, 32k stars), AWS Lambda Microvms (awslabs/agent-plugins, 912 stars) and AWS Lambda (awslabs/agent-plugins, 912 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
aws (a GitHub organization, an official publisher) maintains it in aws/agent-toolkit-for-aws, which has 2,816 GitHub stars. The repository holds 138 skills in this directory. The repository was last updated on October 7, 2026.
Source: aws/agent-toolkit-for-aws on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.