10 月 23 - 25 日,QCon 上海站即将召开,现在大会已开始正式报名,可以享受 8 折优惠 了解详情
写点什么

AWS 发布用于本地构建和测试 AWS Lambda 无服务器应用的“SAM Local”

  • 2017-08-22
  • 本文字数:2006 字

    阅读完需:约 7 分钟

AWS 最近发布了一款测试版的新工具 SAM Local ,该工具可以帮助开发者在本地计算机上更轻松地构建并测试无服务器 AWS Lambda 应用程序。SAM Local 提供的核心功能包括:在本地运行的 Docker 中测试 AWS Lambda 函数,借助 SAM 模板通过一个简单的 CLI 启动本地 API 网关并置于 Lambda 函数之前,验证 SAM 模板,以及针对 S3、Kinesis、CloudTrail 等各种 AWS 事件源的测试工作生成示例载荷。

AWS 去年发布的无服务器应用程序模型(Serverless Application Model,SAM),意在帮助开发者更轻松地部署无服务器应用。SAM 是一种开源规范,基于 AWS CloudFormation 构建并对其进行了扩展,这是 AWS 提供的基础架构即代码(IaC)产品,可供开发者以声明的方式指定云资源的部署和配置。

SAM Local 的主要功能包括:

通过 SAM Local 在本地运行无服务器项目和函数需要安装并运行Docker ,此时SAM Local 将使用DOCKER_HOST 环境变量连接Docker 守护进程。SAM Local 可通过 NPM 安装(npm install -g aws-sam-local),或可从原代码库直接安装最新版(访问 github.com/awslabs/aws-sam-loca,并创建一个名为aws-sam-local,而非sam的二进制文件)。

开发者可通过增强的 CloudFormation 模板格式指定函数的部署配置以及相关的集成式 AWS 资源(这种格式最终会转换为标准的 CloudFormation 模板)。例如,下列template.yaml文件定义了一个简单的 DynamoDB 表,一个基于 Python 的 Lambda 函数(源代码包含在一个单独的文件中,其名称可通过’Handler property’ lambda_function.py 指定),以及一个支持 GET 和 POST 方法的 API 网关实例。

复制代码
---
AWSTemplateFormatVersion : '2010-09-09'
Transform: AWS::Serverless-2016-10-31
Resources:
VotesTable:
Type: "AWS::Serverless::SimpleTable"
VoteSpacesTabs:
Type: "AWS::Serverless::Function"
Properties:
Timeout: 30
Runtime: python3.6
Handler: lambda_function.lambda_handler
Policies: AmazonDynamoDBFullAccess
Environment:
Variables:
TABLE_NAME: !Ref VotesTable
Events:
GetVotes:
Properties:
Method: get
Path: /
Type: Api
Vote:
Properties:
Method: post
Path: /
Type: Api

Randall Hunt 撰写的一篇 AWS 博客文章提供了 SAM 部署与 API 网关集成的范例,并演示了 SAM Local 对整个开发流程提供的帮助。相关说明已经很完善,但实际使用时需要首先创建相应的 DynamoDB 表,随后才能测试函数(例如下列示例通过 AWS CLI 执行了create-table命令),此外在针对测试用途运行本地DynamoDB 时,还需要将函数中的DynamoDB 主机名改为计算机的本地网络IP 地址,不能直接使用 localhost,这是因为函数实际上运行在 Docker 容器内,而 Mac 或 Windows 上的 Docker 都运行在自己的虚拟机内,此时localhost代表不同的上下文。

复制代码
aws dynamodb create-table \
--table-name spaces-tabs-votes \
--attribute-definitions \
AttributeName=id,AttributeType=S \
--key-schema AttributeName=id,KeyType=HASH \
--provisioned-throughput ReadCapacityUnits=1,WriteCapacityUnits=1 \
--endpoint-url http://localhost:8000

SAM Local 可以针对测试用途生成AWS 服务事件,例如运行 sam local generate-event <service>这样的 CLI 命令,此外还可通过受支持的 IDE 进行交互式调试。在Java 和Node.js 中,-d 标志和端口可传递至 sam local CLI 命令,借此可立刻启动调试器。AWS 博客建议对 Python 使用诸如 epdb 这样的二进制库。

在本地开发并测试无服务器应用后,可以使用 SAM CLI 将应用程序打包并部署到生产环境。sam package命令可将代码压缩为 Zip 格式,上传至 S3,并生成一个可直接通过 AWS CloudFormation 部署至 Lambda 的 SAM 文件。sam deploy命令可将打包后的 SAM 模板部署至 CloudFormation。sam packagesam deploy的作用分别等同于 AWS CLI 中的 aws cloudformation package aws cloudformation deploy 命令。

有关 SAM Local 的更多信息可访问 AWS 博客文章:“新增 - AWS SAM Local (Beta) – 本地构建并测试无服务器应用程序”,或访问该项目的 GitHub 代码库

阅读英文原文 AWS Release ‘SAM Local’ to Facilitate Local Build and Test of AWS Lambda Serverless Applications

2017-08-22 19:006791
用户头像

发布了 283 篇内容, 共 118.9 次阅读, 收获喜欢 63 次。

关注

评论

发布
暂无评论
发现更多内容

百度梁志祥:樱桃好吃树好栽 智能体让营销更简单

极客天地

CleanMyMac X for mac(Mac清理优化工具) v5beta中文激活版

Rose

功能强大且灵活的虚拟插件Blue Cat Audio Blue Cat PatchWork mac蓝猫桥接插件

Rose

魔乐开发者社区正式上线,AI开发者快来撩!

天翼云开发者社区

开发者社区 天翼云

截图和屏幕录制工具 CleanShot X for mac v4.7.3激活版

Rose

从表级血缘、列级血缘到算子级血缘,给企业数据管理带来哪些帮助?

Aloudata

全链路数据血缘 数据血缘 数据链路 主动元数据

iShowU Studio for mac(强大的屏幕录像编辑工具)v2.3.15激活版

Rose

Redis集群slot迁移改造实践

vivo互联网技术

redis集群 slot迁移 水平扩缩容

如何让JS代码变的安全?

天翼云开发者社区

前端 网络安全

华为发布会开场舞《见非凡》诠释卓越品质,Hi-Res原曲上线华为音乐

最新动态

百度智能云向量数据库创新和应用实践分享

百度Geek说

数据库 百度云 数据 大模型 知识库

Cisco ACI Simulator 6.0(7e)M 发布下载,新增功能简介

sysin

Cisco sdn 思科 ACI

flowjo for mac安装教程 Mac流式细胞分析软件 支持M1/M2

Rose

人工智能 | ChatGPT 插件开发

测试人

人工智能 软件测试

解锁数据潜力,天翼云TeleDB为企业数智蝶变添力赋能!

天翼云开发者社区

数据库 云计算 云原生 天翼云

mac苹果电脑风扇控制软件:Macs Fan Control Pro for mac 激活版

你的猪会飞吗

mac软件下载 Mac软件下载站 mac破解软件下载

落地数仓数据模型自动、可持续长效治理之策

Aloudata

数据仓库 数据治理 数据模型 数据血缘 主动元数据

中文汉化版Navicat数据库 Navicat Premium 15直装版 mac/win

Rose

Topaz Video AI v5.3.2激活版 mac地表最强视频无损放大修复工具

Rose

相约华中科技大学,移动云技术论坛来了!NineData受邀参会并分享

NineData

移动云 NineData 华中科技大学

TDengine 首席架构师肖波演讲整理:探索新型电力系统的五大关键场景与挑战

TDengine

数据库 tdengine 时序数据库

选购小间距LED屏幕的技巧

Dylan

技术 分辨率 LED显示屏 led显示屏厂家 市场

在广袤的数据通信旷野,“伙伴+华为”体系点亮星云

脑极体

通信

以创新保障数据安全,华为云空间亮相国家网络安全宣传周

最新动态

Microsoft Office LTSC 2024 For Mac永久许可证

Rose

Nova for Mac 代码编辑器 v11.10中文版

Rose

鸿蒙NEXT生态应用核心技术理念:可分可合,自由流转

芯盾时代

鸿蒙 终端

虚拟机热迁移技术介绍

天翼云开发者社区

云计算 虚拟机

张靓颖时隔9年华为发布会再唱《我的梦》,来华为音乐赏高燃重现

最新动态

AWS发布用于本地构建和测试AWS Lambda无服务器应用的“SAM Local”_亚马逊云科技_Daniel Bryant_InfoQ精选文章