NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

星环科技分布式文件系统TDFS大揭秘(上)

星环科技

大数据 计算与存储

TypeScript 之映射类型

冴羽

JavaScript typescript 翻译 大前端

AI安全领域的“雨山机车大赛”,改变了什么?

脑极体

未来“数”于你 | 墨天轮携手 Vertica 发布技术文章征集令,双重大奖蓄势待“发”

墨天轮

数据库 征文大赛 vertica

可视化埋点在 React Native 中的实践

Shopee技术团队

大前端 可视化 埋点 React Native

Hoo虎符研究院 | 区块链简报 20211206 期

区块链前沿News

虎符 Hoo虎符

Python Qt GUI设计:QTabWidget、QStackedWidget和QDockWidget容器控件类(提升篇—2)

不脱发的程序猿

Python qt PyQt GUI设计 容器控件类

xxxx

guangbao

架构实战营4期-第1周作业

周念

「架构实战营」

vue单页面和多页面的区别?

CRMEB

从航海贸易到元宇宙,从公司制到DAO

CECBC

数研所已实现在数字人民币中积极探索区块链应用

CECBC

Hoo虎符研究院 | 币圈后浪——KBOX

区块链前沿News

虎符 Hoo虎符 Hoo 虎符交易所

5.《重学JAVA》--编码规范

杨鹏Geek

Java 25 周年 28天写作 12月日更

【AI最前线】精准优质-资讯|分享|热议第43期

百度大脑

人工智能

Android C++系列:Linux线程(三)线程属性

轻口味

android 28天写作 12月日更

【技术分享】DOSM Web项目优化分析 & 解决方案

云智慧AIOps社区

实用机器学习笔记五:探索性数据分析

打工人!

机器学习 学习笔记 12月日更 李沐 实用机器学习

Python Qt GUI设计:5种事件处理机制(提升篇—3)

不脱发的程序猿

Python qt PyQt GUI设计 事件处理机制

同程旅行 IAST 落地实践

火线安全

DevOps DevSecOps 漏洞扫描 漏洞分析

信也科技 x StarRocks:打造统一销售数据平台

StarRocks

数据库 高并发 StarRocks

质量基础设施“一站式”服务信息平台建设,NQI一站式服务平台

电微13828808271

区块链电子签章平台搭建,区块链电子合同系统

电微13828808271

架构实战营 - 微信业务架构 & 学生管理系统

阿门阿前一颗葡萄树๑

架构实战营 #架构实战营 「架构实战营」

智慧社区综合管理平台解决方案,智慧社区一体化管理系统开发

电微13828808271

创业团队组织建设-跨部门沟通

wood

创业 沟通 28天写作

数字人民币生态体系进一步完善 试点场景加速拓展

CECBC

流上机器学习,星环科技Sophon Base助力海洋石油富岛工艺监测智能化

星环科技

被寄予厚望的区块链在数据交易中能发挥的作用是什么?

CECBC

IT 好文&好课分享

hackstoic

2021年度人工智能最佳产品TOP10!百度飞桨EasyDL再获业界认可

百度大脑

人工智能

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