写点什么

AWS 开源并扩展无服务器应用程序模型(SAM)实现

  • 2018-05-14
  • 本文字数:1561 字

    阅读完需:约 5 分钟

看新闻很累?看技术新闻更累?试试下载 InfoQ 手机客户端,每天上下班路上听新闻,有趣还有料!

近日,Amazon Web Services(AWS)开源了其无服务器应用程序模型(SAM)实现,并增加了一个面向CloudWatch Logs 订阅过滤器的新事件源。该版本全面扩展了通过Amazon API 网关配置和部署REST API 的选项,其中包括支持CORS 头、区域端点和二进制媒体类型。

无服务器应用程序模型(SAM)是一个开源规范,扩展了AWS 的基础设施即代码服务 CloudFormation ,有特定的资源类型,“使用一种简洁的语法定义无服务器应用程序”。SAM 实现了目前两种可用的 CloudFormation 转换中的一种,旨在“通过精简 AWS 基础设施即代码的表达式来简化模板编写”。当模板指定了 AWS::Serverless 转换时,在使用处理过的模板创建或更新栈之前,CloudFormation 会把更简洁的 SAM 语法扩展成平常的 CloudFormation 资源类型

编写 SAM 应用程序要借助 SAM Local CLI,它让你可以“在本地测试函数,从 SAM 模板启动一个本地 API 网关,验证 SAM 模板,生成各种事件源的样例负载”(之前报道过)。然后,开发人员可以使用 AWS CodePipeline AWS CodeBuild 、CloudFormation 和 AWS CodeDeploy 持续地构建,并通过各种金丝雀或线性流量切换配置逐步部署SAM 应用程序。还可以通过无服务器应用程序库以及AWS SAM 应用程序打包、发现和配置平台(之前报道过)共享兼容的解决方案

虽然SAM 规范从一开始就是开源的,但AWS 团队必须闭门实现其认可的每一个请求特性。现在,AWS 开源了将SAM 转换成平常的CloudFormation 模板的代码,降低了社区的参与门槛,这样,任何人都可以实现新特性,并通过pull request 和AWS 团队合作,加速验收。 Samtranslator 的源代码遵循 Apache 2.0 许可协议,已经提供的 aws-sam-translator PyPI 程序包也会让无服务器社区更容易“集成其他框架和部署提供程序”。

除了开源 SAM 实现外, SAM 1.5 版本还增加了一个面向 Amazon CloudWatch Logs 的新事件源,当日志消息与特定的过滤器模式相匹配时,会触发一个 Lambda 函数:

复制代码
# [...]
Resources:
LogsProcessor:
Type: AWS::Serverless::Function
Properties:
CodeUri: .
Handler: lambda_function.lambda_handler
Runtime: python3.6
Events:
HelloInfoQSubscription:
Type: CloudWatchLogs
Properties:
LogGroupName: !Ref CloudWatchLambdaLogsGroup
FilterPattern: Hello InfoQ

之前的 SAM 1.4 版本提供了人们强烈要求的“跨源资源分享(Cross-Origin Resource Sharing,缩写为CORS)” Amazon API 网关支持,现在,只需简单地指定一个域(还有一个更细粒度的 CORS 配置)就可以启用。它还集成了新的 API 网关区域端点、二进制媒体类型、日志、指标、缓存TTL 设置、AWS Lambda函数并发以及各种小改进和Bug 修复。下面的模板节选说明了通过 Globals 段支持 SAM API 网关的简洁性:

复制代码
---
Transform: AWS::Serverless-2016-10-31
Globals:
Api:
# 允许 www.infoq.com 调用这个 API——SAM 将自动
# 添加 AllowMethods,这是该 API 使用的 HTTP 方法的列表
Cors: "'https://www.infoq.com'"
EndpointConfiguration: REGIONAL
BinaryMediaTypes:
# 在部署时和 image/gif、image/png 等效
- image~1gif
- image~1png
# [...]

无服务器应用程序模型的源代码包含一份开发指南、一份简要设计概述贡献准则。其中还包含生成的CloudFormation 资源和相关的 CloudFormation 兼容性。截至目前,SAM 终端用户支持通过 AWS Lambda 论坛提供,后续会转移到新的 AWS 无服务器应用程序库论坛。有兴趣与 SAM 社区及团队合作的开发人员可以加入 AWS SAM 开发者频道(#samdev)。

查看英文原文 AWS Open Sources and Expands Serverless Application Model (SAM) Implementation

2018-05-14 19:001199
用户头像

发布了 1008 篇内容, 共 391.5 次阅读, 收获喜欢 344 次。

关注

评论

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

星环科技多模型大数据基础平台TDH9.0:十种数据模型组合拳 打通大数据业务全场景

星环科技

星环科技数据安全与流通新产品+原创合规体系方法论,加速数据安全落地!

星环科技

netty系列之:给ThreadLocal插上梦想的翅膀,详解FastThreadLocal

程序那些事

Java Netty 程序那些事 5月月更

超低延迟传输网络架构在元宇宙场景的应用

网易云信

音视频 元宇宙 传输网络

String源码解析-String的使用注意

zarmnosaj

5月月更

Rainbond结合NeuVector实践容器安全管理

北京好雨科技有限公司

手慢无!Alibaba五份自研Java程序员进阶宝典限时开源(开发手册+面试指南+性能优化+机器学习+架构手册)

Java全栈架构师

Java 程序员 架构 面试 程序人生

面试以前上司,能力一般,但他卑微哀求,我该不该放水?

Java全栈架构师

架构 面试 程序人生 java程序员 java 编程

Apache IoTDB 在智慧养老家庭设备上的落地应用,节约99%存储成本

Apache IoTDB

青岛研博基于EMQ物联网数据基础设施在智慧水务平台产品中的实践

EMQ映云科技

物联网 IoT 实践案例 emq 5月月更

企评家 | 从机器学习刻画企业成长性画像

企评家

企评家| 嘉凯城集团股份有限公司成长性评价报告摘要

企评家

揭露ROI提升5倍的秘密!火山引擎A/B测试白皮书重磅发布(内附下载链接)

字节跳动数据平台

字节跳动 数字营销 ab测试

星环科技打造自主可控的高性能数据库,开启国产化升级新篇章

星环科技

星环科技TDH社区版:让大数据分析触手可及

星环科技

如何用同一套账号接入整个研发过程?

阿里云云效

云计算 阿里云 运维 研发管理 研发

ansible 模块:systemd

ghostwritten

ansible systemd

Zadig v1.11.0 发布:不止于环境,与开发者一起交付全球业务

Zadig

DevOps 云原生 CI/CD 软件交付

HarmonyOS 2版本更新!两个小技巧让你告别隐私泄露烦恼

科技汇

GPU服务器:全球市值最大的半导体公司

Finovy Cloud

人工智能 云计算 GPU服务器

企评家|四川美丰化工股份有限公司成长性报告简述

企评家

iview 如何实现文件上传并限制上传格式和大小

CRMEB

京东优惠价格策略助手

江苏京酷电子商务有限公司

查询优化 京东 优惠券 转链

【LeetCode】移除指定数字得到的最大结果Java题解

Albert

算法 LeetCode 5月月更

使用开源软件的优点和缺点是什么

爱吃小舅的鱼

直播预告|企业智能化转型Meetup V1

星策开源社区

AI BI 智能化转型

如何将你的 WordPress 网站置于维护模式

海拥(haiyong.site)

WordPress 5月月更

体验有礼 | 1 分钟 Serverless 极速部署个人网盘,真网盘真好用!

Serverless Devs

阿里云 互联网

CRM系统可以拯救您的初创企业

低代码小观

初创公司 CRM 中小企业 CRM系统 初创型企业

在Rainbond中一键部署高可用 EMQX 集群

北京好雨科技有限公司

制作网站的FAQ时,需要考虑哪些功能,要有哪些注意事项

小炮

FAQ

AWS开源并扩展无服务器应用程序模型(SAM)实现_亚马逊云科技_Steffen Opel_InfoQ精选文章