[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EEE1A78MWECNXDQFPAPHY5":3,"skill-same:01M6EEE1A78MWECNXDQFPAPHY5":54},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":30,"ownerHtmlUrl":31,"ownerBlogUrl":6,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M6EEE1A78MWECNXDQFPAPHY5","aws-lambda",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Faws-lambda\u002FSKILL.md",[],[18,19,20],"aws","lambda","aws lambda","2026-11-10 10:12:30",false,"# AWS Lambda — Serverless Functions\n\nYou are an expert in AWS Lambda, Amazon's serverless compute service. You help developers build event-driven applications using Lambda functions triggered by API Gateway, S3 events, SQS queues, DynamoDB streams, and scheduled events — with support for Node.js, Python, Go, Rust, Java, and container images, automatic scaling from zero to thousands of concurrent executions, and pay-per-invocation pricing.\n\n## Core Capabilities\n\n### Function Handlers\n\n```typescript\n\u002F\u002F handler.ts — API Gateway Lambda (Node.js\u002FTypeScript)\nimport { APIGatewayProxyHandlerV2 } from \"aws-lambda\";\n\nexport const handler: APIGatewayProxyHandlerV2 = async (event) => {\n  const { httpMethod, pathParameters, body, queryStringParameters } = event;\n\n  try {\n    switch (httpMethod) {\n      case \"GET\": {\n        const id = pathParameters?.id;\n        if (id) {\n          const item = await db.get({ TableName: \"users\", Key: { id } });\n          return { statusCode: 200, body: JSON.stringify(item.Item) };\n        }\n        const items = await db.scan({ TableName: \"users\" });\n        return { statusCode: 200, body: JSON.stringify(items.Items) };\n      }\n      case \"POST\": {\n        const data = JSON.parse(body || \"{}\");\n        await db.put({ TableName: \"users\", Item: { id: uuid(), ...data } });\n        return { statusCode: 201, body: JSON.stringify({ created: true }) };\n      }\n      default:\n        return { statusCode: 405, body: \"Method not allowed\" };\n    }\n  } catch (error) {\n    console.error(error);\n    return { statusCode: 500, body: JSON.stringify({ error: \"Internal error\" }) };\n  }\n};\n```\n\n```python\n# handler.py — S3 event trigger (Python)\nimport json\nimport boto3\nfrom PIL import Image\nimport io\n\ns3 = boto3.client(\"s3\")\n\ndef handler(event, context):\n    \"\"\"Process uploaded images: resize and create thumbnails.\n\n    Triggered by S3 PutObject events on the uploads\u002F prefix.\n    \"\"\"\n    for record in event[\"Records\"]:\n        bucket = record[\"s3\"][\"bucket\"][\"name\"]\n        key = record[\"s3\"][\"object\"][\"key\"]\n\n        # Download original\n        response = s3.get_object(Bucket=bucket, Key=key)\n        image = Image.open(io.BytesIO(response[\"Body\"].read()))\n\n        # Create thumbnail\n        image.thumbnail((300, 300))\n        buffer = io.BytesIO()\n        image.save(buffer, format=\"JPEG\", quality=85)\n        buffer.seek(0)\n\n        # Upload thumbnail\n        thumb_key = key.replace(\"uploads\u002F\", \"thumbnails\u002F\")\n        s3.put_object(\n            Bucket=bucket,\n            Key=thumb_key,\n            Body=buffer,\n            ContentType=\"image\u002Fjpeg\",\n        )\n\n    return {\"statusCode\": 200, \"processed\": len(event[\"Records\"])}\n```\n\n### Infrastructure as Code (SAM)\n\n```yaml\n# template.yaml — AWS SAM template\nAWSTemplateFormatVersion: \"2010-09-09\"\nTransform: AWS::Serverless-2016-10-31\n\nGlobals:\n  Function:\n    Runtime: nodejs20.x\n    Timeout: 30\n    MemorySize: 256\n    Environment:\n      Variables:\n        TABLE_NAME: !Ref UsersTable\n\nResources:\n  ApiFunction:\n    Type: AWS::Serverless::Function\n    Properties:\n      Handler: dist\u002Fhandler.handler\n      Events:\n        GetUsers:\n          Type: Api\n          Properties:\n            Path: \u002Fusers\n            Method: get\n        CreateUser:\n          Type: Api\n          Properties:\n            Path: \u002Fusers\n            Method: post\n      Policies:\n        - DynamoDBCrudPolicy:\n            TableName: !Ref UsersTable\n\n  ImageProcessor:\n    Type: AWS::Serverless::Function\n    Properties:\n      Handler: handler.handler\n      Runtime: python3.12\n      MemorySize: 1024\n      Timeout: 60\n      Events:\n        S3Upload:\n          Type: S3\n          Properties:\n            Bucket: !Ref UploadsBucket\n            Events: s3:ObjectCreated:*\n            Filter:\n              S3Key:\n                Rules:\n                  - Name: prefix\n                    Value: uploads\u002F\n      Policies:\n        - S3CrudPolicy:\n            BucketName: !Ref UploadsBucket\n\n  UsersTable:\n    Type: AWS::DynamoDB::Table\n    Properties:\n      TableName: users\n      BillingMode: PAY_PER_REQUEST\n      AttributeDefinitions:\n        - AttributeName: id\n          AttributeType: S\n      KeySchema:\n        - AttributeName: id\n          KeyType: HASH\n\n  UploadsBucket:\n    Type: AWS::S3::Bucket\n```\n\n```bash\n# Deploy with SAM\nsam build\nsam deploy --guided                       # First time\nsam deploy                                # Subsequent\nsam local start-api                       # Local development\nsam logs --tail --name ApiFunction         # Stream logs\n```\n\n## Installation\n\n```bash\n# SAM CLI\nbrew install aws-sam-cli\n# Or: pip install aws-sam-cli\n\n# AWS CLI\nbrew install awscli\naws configure                             # Set credentials\n```\n\n## Best Practices\n\n1. **Cold start optimization** — Minimize dependencies, use provisioned concurrency for latency-sensitive APIs, prefer arm64 (Graviton2)\n2. **Environment variables** — Store config in env vars; use SSM Parameter Store or Secrets Manager for secrets\n3. **Layers for shared code** — Package common dependencies (SDKs, utilities) as Lambda Layers; reduce deployment size\n4. **Dead letter queues** — Configure DLQ on async invocations (SQS, SNS triggers); don't lose failed events\n5. **Structured logging** — Use JSON logging with request ID; CloudWatch Insights can query structured logs\n6. **Function URLs** — Use Lambda Function URLs for simple HTTP endpoints without API Gateway ($0 per invocation)\n7. **Power tuning** — Use AWS Lambda Power Tuning to find optimal memory\u002Fcost ratio; more memory = faster CPU\n8. **Container images** — Use container images for functions >250MB or with native dependencies; up to 10GB\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FTerminalSkills\u002Fskills\u002Faws-lambda",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill aws-lambda",{"tool":40,"command":41},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill aws-lambda",{"tool":43,"command":44},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill aws-lambda","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Faws-lambda\u002FSKILL.md",true,[48],{"path":49,"resourceType":50,"resourceTypeDesc":51,"sizeBytes":52,"sourceHtmlUrl":53},"customize.toml","OTHER","其他",1663,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-cis-agent-design-thinking-coach\u002Fcustomize.toml",[55,69,79,88,94,101],{"skillNo":56,"name":57,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":58,"categories":59,"keywords":65,"publishedAt":21},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[60],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[66,67,68],"model","model hierarchy","model hierarchy skill",{"skillNo":70,"name":71,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":72,"categories":73,"keywords":75,"publishedAt":21},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[74],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},[76,77,78],"MCP","zoom","zoom mcp",{"skillNo":80,"name":81,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":21},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[85,86,87,77],"sdk","zoom apps sdk","apps",{"skillNo":89,"name":90,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":93,"publishedAt":21},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[90],{"skillNo":95,"name":96,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":100,"publishedAt":21},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[99],{"categoryNo":61,"categoryName":62,"taxonomyType":63,"taxonomyTypeDesc":64},[96],{"skillNo":102,"name":103,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":106,"publishedAt":21},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[103]]