【ArchSummit架构师峰会】探讨数据与人工智能相互驱动的关系>>> 了解详情
写点什么

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:001051
用户头像

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

关注

评论

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

基于双层缓存(DLC)机制解决热点缓存并发重建问题

xfgg

Java' 6 月 优质更文活动

赋能中国软件,共筑开放生态|2023开放原子全球开源峰会软硬协同开源分论坛成功举办

开放原子开源基金会

开源 开放原子全球开源峰会 开放原子 软硬协同开源

优化开发工作流的三大实用技巧,助力效率提升

龙智—DevSecOps解决方案

版本控制 版本管理

ModelBox实战开发:RK3568实现摄像头虚拟背景

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号 6 月 PK 榜

华为云黄瑾:做强坚实数据底座,GaussDB与产业携手共进

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

华为云邓明昆:云原生时代,以开源赋能数字化转型

华为云开发者联盟

云原生 后端 华为云 华为云开发者联盟 企业号 6 月 PK 榜

API网关-APISIX简介

天翼云开发者社区

云原生 API

NFTScan | 06.12~06.18 NFT 市场热点汇总

NFT Research

热点 NFT\

冠军!天翼云在国际AI顶会大模型挑战赛中拔得头筹!

天翼云开发者社区

人工智能

华为云邓明昆:云原生时代,以开源赋能数字化转型

华为云开源

开源 云原生 数字化

四大技巧,教你如何加速手动UI测试

龙智—DevSecOps解决方案

UI测试 用户界面测试

即时通讯技术文集(第17期):社交软件红包技术专题 [共12篇]

JackJiang

网络编程 即时通讯 IM

openGemini:顺势而动,蓄势而发

华为云开源

数据库 开源

【零售电商系列】走进亚马逊之三方物流与售后

小诚信驿站

6 月 优质更文活动

华为云苏光牛:坚持产品能力的升级,做金融数字化的坚实数据底座

华为云开发者联盟

华为云 华为云开发者联盟 企业号 6 月 PK 榜

【参考设计】2KW AC/DC数字电源方案

元器件秋姐

设计 电路 方案 电源 数字电源

LED透明屏和LED玻璃屏的区别

Dylan

分辨率 视频 图像 屏幕亮度 LED

用简单的描述带你理解运算放大器

矜辰所致

运算放大器 6 月 优质更文活动

数字化转型的“整体规划”有多重要?

优秀

低代码 数字化转型 数字化

openEuler+Linaro合作成果展示|2023开放原子全球开源峰会

openEuler

Linux 开源 操作系统 openEuler linaro

GPT-4满分通过MIT本科数学考试!这套提示词火了

Openlab_cosmoplat

算法 ChatGPT

如何在 Apifox 中正确指定 query 参数?

Apifox

Java 程序员 Apifox API 接口工具

大会预告 | 2023云边协同大会将于6月30日在京召开

信通院IOMM数字化转型团队

边缘计算 AIOT 分布式云 云边协同

快速掌握 Axios 请求库的基本用法

Liam

程序员 开发 HTTP API axios

618夏日“折”学家活动上线!开通表盘会员解锁百变腕间风格

最新动态

Seata Saga 模式快速入门和最佳实践

阿里巴巴云原生

阿里云 云原生 seata

中国移动云能力中心捐赠 secScanner 和 ksPack 项目,助力openEuler社区繁荣发展

openEuler

Linux 操作系统 openEuler 移动云 开放原子基金会

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