生成式AI领域的最新成果都在这里!抢 QCon 展区门票 了解详情
写点什么

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

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

关注

评论

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

架构师训练营作业(大数据与机器学习)

qihuajun

Flink通过官网创建自己的工程-20

小知识点

scala 大数据 flink

使用开源软件构建工业互联网的平台

刘旭东

工业互联网 Odoo thingsboard

Redis 哨兵模式

是老郭啊

redis redis哨兵模式 redis哨兵 redis哨兵集群

甲方日常10

句子

工作 随笔杂谈 日常

工作好多年有可能还未真正了解接口和抽象类

架构师修行之路

接口 抽象

20张图,大学四年都没整明白的操作系统就这么学会了

小Q

Java 程序员 架构 操作系统

协同新机遇:让研发敏捷起来

人称T客

当心这些“坑”!阿里云服务器部署前后端分离项目

麦洛

nginx 前后端分离 跨域

边缘计算,如何啃下集群管理这块硬骨头?

BoCloud博云

云计算 容器 边缘计算 PaaS 博云

[翻译]The Go scheduler[Go调度]

卓丁

Go scheduler Go 语言

从用户输入手机验证码开始

架构师修行之路

架构师训练营 - 第 8周命题作业

红了哟

呕心沥血,整理200+最新面试题,面试之前看一下,事半功倍

小Q

Java 学习 程序员 架构 面试

[翻译]Go Concurrency Patterns[Go 并发模式]

卓丁

Rob Pike Go Concurrency Patterns Concurrency Go 语言

“新基建”与“双循环”的二重奏:2020服贸会靠什么推动经济复苏

脑极体

架构师第十三周作业

傻傻的帅

架构师

未读消息(小红点),前端与 RabbitMQ实时消息推送实践,贼简单~

程序员小富

Java RabbitMQ mqtt

Polkadot初识,不止于跨链

QTech

polkadot 跨链

未来经济 数字优先 | 大数据专场

腾讯云大数据

大数据

阿里P8忠告:这些技术,哪怕不用微服务架构,你也应该会

小Q

Docker 架构 微服务 springboot SpringCloud

物联网通信技术最全科普!你一定要了解的NB-IoT

华为云开发者联盟

物联网

教师节特别活动:第四范式多项自研技术及其应用实践分享

天枢数智运营

人工智能 推荐系统 第四范式 个性化推荐

CSS常用样式——绘制单(双)箭头的多种方法(2)

程序员学院

CSS html 程序员

合约跟单app,永续合约交易所带单交易软件

市值做市机器人,操盘做市系统搭建

用技术的“信条”,开启AI to B的产业位移

脑极体

LeetCode题解:225. 用队列实现栈,两个队列,压入 -O(1), 弹出 -O(n),JavaScript,详细注释

Lee Chen

大前端 LeetCode

XSKY ClickHouse如何实现存算分离

XSKY星辰天合

一步搞定任意圆角背景

mengxn

android xml 圆角

indexOf原理,Java,javascript,python实现

叫练

算法

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