速来报名!AICon北京站鸿蒙专场~ 了解详情
写点什么

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

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

关注

评论

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

亚马逊云科技 Build On 2022 - AIot 第二季物联网专场实验心得

指剑

AWS AIOT 签约计划第三季 8月月更

从0到1看支付

自然

支付系统 后端开发 支付网关 签约计划第三季

云计算国内外发展现状

阿炜小菜鸡

云计算 8月月更

如何面向对象编程?程序员:我也要先有"对象"啊

华为云开发者联盟

Python 编程 后端 开发

2022-Java后端工程师必会知识点-(操作系统)

自然

操作系统 8月月更

AI+BI+可视化,Sugar BI 架构深度剖析

Baidu AICLOUD

大数据 数据分析 BI 可视化数据

互联网用户账号信息管理规定今起施行:必须严打账号买卖灰产

石头IT视角

目标检测的国内外研究现状

阿炜小菜鸡

目标检测 8月月更

理想汽车内部推荐

程序员阿杜

Spring Security

武师叔

8月月更

2022-Java后端工程师面试指南-(Elasticsearch)

自然

Elastic Search 8月月更

C++面向对象封装特性的实例分析与应用扩展(二)

CtrlX

c c++ 面向对象 后端 8月月更

开源一夏 |如何优化线上服务器

叶秋学长

开源 服务器 8月月更

目标检测技术研究现状及发展趋势

阿炜小菜鸡

目标检测 8月月更

动态接口比例性能测试实践

FunTester

5000元价位高性能轻薄本标杆 华硕无双高颜能打

科技热闻

云渲染的优势与劣势

Finovy Cloud

云渲染 云渲染农场

东西向和南北向通信的统一

阿泽🧸

8月月更

Vue是什么?Vue和jQuery

flow

8月月更

云GPU如何安装和启动VNC远程桌面服务?

恒源云

人工智能 深度学习 gpu

一加Ace值得买吗?用实力诠释性能的强大

Geek_8a195c

第01篇:手写JavaRPC框架之思路分析

西魏陶渊明

Java RPC RPC 协议实现原理 RPC框架

现网设备兼容SRv6网络演进

穿过生命散发芬芳

8月月更 SRv6

电商秒杀系统

极客土豆

微信小程序分享功能

源字节1号

软件开发

七日算法先导(三)—— 冒泡排序,选择排序

工程师日月

8月月更

盘点在线帮助中心对企业能够起到的作用

Baklib

收藏-即时通讯(IM)开源项目OpenIM-功能手册

Geek_1ef48b

化算力为战力:宁夏中卫的数字化转型启示录

脑极体

揭秘5名运维如何轻松管理数亿级流量系统

York

云计算 DevOps 云原生 数字化转型 开发与运维

友宏医疗与Actxa签署Pre-M Diabetes TM 战略合作协议

联营汇聚

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