【计算机工具类-CI和CD工具Skills】aws-serverless 技能
在AWS上构建生产就绪的无服务器应用程序的专门技能。涵盖Lambda函数、API Gateway、DynamoDB、SQS/SNS事件驱动模式、SAM/CDK部署和冷启动优化。技能概述aws-serverless 技能提供了在AWS上构建生产就绪的无服务器应用程序的专家模式和最佳实践。它涵盖了Lambda函数、API Gateway、DynamoDB、SQS/SNS事件驱动模式、SAM/CDK部署和冷启动优化等关键领域,帮助开发者构建高性能、可靠的无服务器架构。下载地址:agentic-awesome-skills/skills/aws-serverless at main · sickn33/agentic-awesome-skills · GitHub主要功能Lambda函数模式: 提供Node.js和Python的Lambda处理程序模式,包含错误处理和最佳实践API Gateway集成: REST API和HTTP API与Lambda的集成模式DynamoDB操作: 高效的DynamoDB数据访问模式和最佳实践事件驱动模式: SQS/SNS事件驱动架构模式SAM/CDK部署: 使用SAM和CDK进行基础设施即代码部署冷启动优化: 减少冷启动时间和优化性能的策略核心原则正确调整内存和超时大小(在优化之前测量)为延迟敏感的工作负载最小化冷启动为Java/.NET函数使用SnapStart对于简单用例,优先使用HTTP API而不是REST API为失败设计,使用DLQ和重试保持部署包小使用环境变量进行配置使用关联ID实现结构化日志记录Lambda处理程序模式Node.js Lambda处理程序// Initialize outside handler (reused across invocations)const { DynamoDBClient } require(aws-sdk/client-dynamodb);const { DynamoDBDocumentClient, GetCommand } require(aws-sdk/lib-dynamodb);const client new DynamoDBClient({});const docClient DynamoDBDocumentClient.from(client);// Handler functionexports.handler async (event, context) {context.callbackWaitsForEmptyEventLoop false;try {const body typeof event.body string ? JSON.parse(event.body) : event.body;const result await processRequest(body);return {statusCode: 200,headers: {Content-Type: application/json,Access-Control-Allow-Origin: *},body: JSON.stringify(result)};} catch (error) {console.error(Error:, JSON.stringify({error: error.message,stack: error.stack,requestId: context.awsRequestId}));return {statusCode: error.statusCode || 500,headers: {Content-Type: application/json},body: JSON.stringify({error: error.message || Internal server error})};}};Python Lambda处理程序import jsonimport osimport loggingimport boto3from botocore.exceptions import ClientErrorlogger logging.getLogger()logger.setLevel(logging.INFO)dynamodb boto3.resource(dynamodb)table dynamodb.Table(os.environ[TABLE_NAME])def handler(event, context):try:body json.loads(event.get(body, {})) if isinstance(event.get(body), str) else event.get(body, {})result process_request(body)return {statusCode: 200,headers: {Content-Type: application/json,Access-Control-Allow-Origin: *},body: json.dumps(result)}except ClientError as e:logger.error(fDynamoDB error: {e.response[Error][Message]})return error_response(500, Database error)except json.JSONDecodeError:return error_response(400, Invalid JSON)except Exception as e:logger.error(fUnexpected error: {str(e)}, exc_infoTrue)return error_response(500, Internal server error)最佳实践在处理程序外部初始化客户端(在温暖调用之间重用)始终返回正确的API Gateway响应格式使用结构化JSON进行日志记录,以便CloudWatch Insights在错误日志中包含请求ID以便跟踪API Gateway集成模式REST API和HTTP API与Lambda的集成,适用于构建由Lambda支持的REST API,需要HTTP端点的函数。SAM模板示例AWSTemplateFormatVersion: 2010-09-09Transform: AWS::Serverless-2016-10-31Globals:Function:Runtime: nodejs20.xTimeout: 30MemorySize: 256Environment:Variables:TABLE_NAME: !Ref ItemsTableResources:HttpApi:Type: AWS::Serverless::HttpApiProperties:StageName: prodCorsConfiguration:AllowOrigins:- *AllowMethods:- GET- POST- DELETEAllowHeaders:- *注意事项仅在任务明确匹配上述范围时使用此技能不要将输出作为环境特定验证、测试或专家审查的替代品如果缺少所需的输入、权限、安全边界或成功标准,请停止并请求澄清

相关新闻

密码正则验证全链路实践:从安全原理到前后端实现

密码正则验证全链路实践:从安全原理到前后端实现

1. 项目概述:为什么密码验证远不止“8位”这么简单?“密码必须包含大小写字母、数字、特殊字符,且至少8位”——这个规则,几乎每个上网冲浪的人都见过。乍一看,它像是一道简单的数学题,组合一下字符集&…

2026/10/26 22:55:40 阅读更多 →
Java后端集成EasyNVR视频平台:SpringBoot对接API实战与优化

Java后端集成EasyNVR视频平台:SpringBoot对接API实战与优化

1. 项目概述与背景最近在做一个安防监控相关的项目,需要把分散在不同地点的网络摄像头视频流集中管理起来,并且要能通过我们自己的后台系统进行实时预览、录像回放和设备控制。市面上成熟的视频平台不少,但要么太贵,要么二次开发接…

2026/10/26 22:55:43 阅读更多 →
Jetson Orin Nano存储扩容实战:将/home迁移至reComputer

Jetson Orin Nano存储扩容实战:将/home迁移至reComputer

1. 项目缘起:为什么要把Orin Nano的/home挪到reComputer上?最近在折腾Jetson Orin Nano Developer Kit,这玩意儿性能是真不错,但有个老问题又冒出来了:内置的eMMC存储空间实在不够看。我装了几个开发环境,比…

2026/10/26 22:55:44 阅读更多 →

最新新闻

Electron桌面应用开发实战:从环境搭建到打包发布全流程

Electron桌面应用开发实战:从环境搭建到打包发布全流程

做前端这些年,我大部分时间都在跟浏览器标签页打交道,直到第一次把桌面应用跑起来,才发现原来自己一直被限制在地址栏和刷新按钮围起来的框框里。Electron这个词,最开始是在某段时间频繁出现在同事的讨论里,一个用HTML…

2026/10/27 17:33:32 阅读更多 →
滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

滑盖智能锁T109深度解析:结构原理、安装调试与故障排查

简介:亚太天能T109滑盖智能锁产品说明书是一份PDF格式的官方技术文档,主要面向智能锁安装人员、终端用户及售后维护者,帮助快速掌握产品安装、配置与常见故障处理。全包仅1个PDF文件,大小4.37MB,内容结构清晰&#xff…

2026/10/27 4:06:49 阅读更多 →
PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

PMSM弱磁控制原理与Simulink建模:高速AGV驱动系统设计指南

上个月我在调试一台高速AGV的驱动系统,整车要求空载跑到8m/s,电机转速已经拉到额定点,驱动器的输出电压也顶到了母线电压极限附近。再往上踩速度指令,转速纹丝不动,三相电流反而开始震荡。那会儿我的第一反应就是&…

2026/10/27 7:21:53 阅读更多 →
C++核心知识点:从内存管理到STL的实战指南

C++核心知识点:从内存管理到STL的实战指南

C 这门语言我前前后后折腾了十几年,用它写过嵌入式驱动、做过游戏服务端,也搭过基础组件库。每次看到新人一头扎进"C 核心知识点"这个搜索词,我其实挺感慨的——这门语言的难点从来不是语法多,而是知识点之间的耦合太深…

2026/10/27 18:20:50 阅读更多 →
T109滑盖智能锁怎么装?安装调试与故障排查全攻略

T109滑盖智能锁怎么装?安装调试与故障排查全攻略

简介:亚太天能T109滑盖智能锁产品说明书以PDF格式发布,适合智能锁用户、安装人员与售后维修人员阅读。内容围绕T109系列指纹密码刷卡锁展开,先介绍前面板、后面板、锁体、机械钥匙、电池盒盖等部件名称与功能,再给出完整安装步骤&…

2026/10/27 6:20:47 阅读更多 →
LLM知识降熵:从信息垄断到理解权下放

LLM知识降熵:从信息垄断到理解权下放

你有没有过这种经历:翻开源码注释、论文摘要或者一份专业报告,每个字都认识,连在一起却像天书。想找人聊聊,身边要么没人懂,要么懂的懒得跟你解释。后来我试着把同一段内容丢给一个大语言模型,几秒钟之后&a…

2026/10/27 4:06:50 阅读更多 →

日新闻

周新闻

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 13:55:19 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 7:21:50 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/27 19:19:37 阅读更多 →