如何结合SAM、Lambda、DynamoDB与Amplify进行本地开发?
以下是针对你需求的实操步骤,不用每次改代码都部署:
先确保你的Amplify CLI是最新版本,执行:
npm install -g @aws-amplify/cli初始化本地模拟环境,这个命令会启动本地的GraphQL API、Lambda等服务的模拟实例,完全在本地运行:
amplify mock启动后会给出本地GraphQL Playground的地址,还有Lambda的日志输出通道。
确保GraphQL模型和Lambda的触发器关联正确:
打开你的GraphQL schema文件(路径:amplify/backend/api/[你的API名称]/schema.graphql),在需要触发Lambda的模型上添加@function指令,指定你的Lambda函数名,比如:type YourModel @model @function(name: "你的Lambda函数名") { id: ID! # 其他字段... }这个指令会让模型的新增(以及其他默认触发事件,可配置)操作触发对应的Lambda。如果之前没关联,也可以通过
amplify update function命令,选择你的Lambda,然后关联GraphQL API的触发事件来配置。本地调试Lambda:
修改Lambda代码后,大部分场景下amplify mock会自动热重载代码;如果没生效,重启一下amplify mock即可。也可以单独模拟Lambda进行调试:amplify mock function 你的Lambda函数名这个命令会让你输入测试事件,直接验证Lambda逻辑。
验证触发效果:
启动你的React本地应用(npm start),提交新增数据的操作,或者用本地GraphQL Playground发送mutation请求,就能在amplify mock的控制台看到Lambda的执行日志,确认触发成功。
内容的提问来源于stack exchange,提问作者izaac mendes

