AWS SAM CLI 新增远程调用功能
AWS 最近在 AWS Serverless Application Model (SAM) 命令行工具(CLI)中推出了 远程调用 (remote invoke) 功能,专门用于 AWS Lambda。这一功能允许开发者快速调用部署在 AWS 云中的 Lambda 函数,从而加速开发、测试和部署的迭代流程。
主要功能与优势
- 简化测试流程:通过
sam remote invoke命令,开发者可以轻松测试 Lambda 函数。该命令接受事件负载和 Lambda 逻辑 ID 作为输入,调用函数并输出响应。 多种调用模式:支持多种调用模式,包括:
- 响应流模式 (response streaming)
- 异步调用 (asynchronous invoke)
- 干运行 (dry run)
- 请求响应模式 (request response)
- 输出配置:开发者可以使用
--output选项将响应配置为 JSON 或文本格式。 - 与
sam sync协同:结合sam sync命令,进一步加速构建-部署-测试的迭代周期。
响应内容
当使用 sam remote invoke 调用 Lambda 函数时,AWS SAM CLI 会返回以下内容:
- 请求元数据:包括请求 ID 和请求开始时间。
- Lambda 响应:Lambda 函数在云端被调用后的响应。
使用示例
以下是一个调用 Lambda 函数的示例命令及其输出:
sam remote invoke arn:aws:lambda:us-west-2:012345678910:function:sam-app-HelloWorldFunction-ohRFEn2RuAvp输出包括请求的详细信息、Lambda 函数的执行结果以及性能指标(如执行时间、内存使用情况等)。
实际应用场景
AWS 首席开发者倡导者 Eric Johnson 在博客中演示了如何使用远程调用功能。他创建了一个包含两个 Lambda 函数的 SAM 应用程序:
- TranslateFunction:使用 Amazon Translate 服务将文本翻译为目标语言。
- StreamFunction:生成流式数据。
开发者可以通过远程调用功能模拟 API Gateway 的调用,或者通过 Python SDK (boto3) 获取原始响应,包括调用的版本、重试次数等详细信息。
其他功能
- 与 AWS SDK 集成:AWS SAM 使用 boto3 进行远程调用,并引入了
--parameter标志以支持 SDK 选项。 - 日志与追踪:虽然
sam logs功能可以查看 CloudWatch 和 X-Ray 的聚合日志,但远程调用功能专注于提供特定函数调用的上下文日志,满足测试需求。
版本要求
远程调用功能在 SAM CLI 版本 1.88.0+ 中可用,更多详细信息可参考官方文档。
总结
AWS SAM CLI 的远程调用功能为开发者提供了一种高效测试 Lambda 函数的方式,支持多种调用模式和灵活的响应输出配置。结合 sam sync 等功能,它进一步优化了服务器应用程序的开发流程,帮助开发者更快速地迭代和测试他们的代码。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用。你还可以使用@来通知其他用户。