【计算机工具类-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/8/2 3:14:38 阅读更多
Java后端集成EasyNVR视频平台:SpringBoot对接API实战与优化

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

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

2026/8/2 3:14:38 阅读更多
Jetson Orin Nano存储扩容实战:将/home迁移至reComputer

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

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

2026/8/2 3:14:38 阅读更多
MATLAB数据可视化技术

MATLAB数据可视化技术

MATLAB数据可视化技术 一、数据可视化概述 1.1 MATLAB绘图体系架构 ┌─────────────────────────────────────────────────────────────────┐ │ MATLAB可视化体系架构 …

2026/8/2 3:54:40 阅读更多
USB/RS232/RS485/TTL万能串口转换器:原理、设计与实战应用

USB/RS232/RS485/TTL万能串口转换器:原理、设计与实战应用

1. 项目概述:为什么我们需要一个“万能”的串口转换器? 在嵌入式开发、工业自动化、智能硬件调试这些领域里混迹多年的工程师,手边最离不开的可能就是各种串口线了。你肯定遇到过这样的场景:新到的工控主板只留了一个RS485接口&am…

2026/8/2 3:54:40 阅读更多
单片机毕设项目:基于 OLED 可视化的嵌入式智能交通灯控制器 基于单片机多外设驱动交通信号控制系统实现(016101)

单片机毕设项目:基于 OLED 可视化的嵌入式智能交通灯控制器 基于单片机多外设驱动交通信号控制系统实现(016101)

博主介绍:✌️码农一枚 ,专注于大学生项目实战开发、讲解和毕业🚢文撰写修改等。全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于嵌入式单片机,Java、小程序技术领域和毕业项目实战 ✌️…

2026/8/2 3:44:40 阅读更多
3分钟搞定!QQ空间历史说说完整备份终极指南

3分钟搞定!QQ空间历史说说完整备份终极指南

3分钟搞定!QQ空间历史说说完整备份终极指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想过,那些年发过的QQ空间说说,那些记录青春的文字…

2026/8/2 0:04:01 阅读更多
3分钟搞定!QQ空间历史说说完整备份终极指南

3分钟搞定!QQ空间历史说说完整备份终极指南

3分钟搞定!QQ空间历史说说完整备份终极指南 【免费下载链接】GetQzonehistory 获取QQ空间发布的历史说说 项目地址: https://gitcode.com/GitHub_Trending/ge/GetQzonehistory 你是否曾想过,那些年发过的QQ空间说说,那些记录青春的文字…

2026/8/2 0:04:01 阅读更多
AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O 分配 PCB

AMAT 0100-02186 I/O分配PCB板是应用材料(Applied Materials)公司生产的一款用于半导体设备的I/O信号分配电路板。该型号(0100-02186)的核心特点如下:专用于Endura等半导体工艺腔室。集成信号路由与分配功能。连接控制…

2026/8/2 2:51:21 阅读更多
Nissei Corp FFMN-32L-10-T0 40AX 三相异步电动机

Nissei Corp FFMN-32L-10-T0 40AX 三相异步电动机

Nissei Corp FFMN-32L-10-T0 40AX 三相异步电动机是日本日清(Nissei)品牌的一款工业用三相异步电机,适用于自动化设备及通用机械驱动。该型号(FFMN-32L-10-T0 40AX)的核心特点如下:三相交流异步电动机。额定…

2026/8/2 2:52:49 阅读更多