无需再忙了:Lambda-S3缩略图,由SLAppForge Sigma钉牢!

如果你还没有注意到了,我最近被唠叨试图开始使用时,我遭遇了陷阱AWSλ-S3正式例子 。 虽然大多数这些愚蠢的错误的指责是对我自己的懒惰,过度自尊和缺乏对细节的关注,我个人觉得,在开始与一家领先的无服务器供应商不应该是那么难。

我在SLAppForge的团队也是如此 。 他们建立了Sigma来实现这一目标。

(警告:猫从书包里拿出来了!)

让我们看看Sigma可以做什么, 使您的无服务器生活变得轻松 。

Sigma已经提供了S3缩略图样本的现成版本 。 如果您愿意的话,按照自述文件的说明 ,部署它只需几分钟。

在此讨论中,让我们采用一种更动手的方法:从原始缩略图样本中获取代码,将其粘贴到Sigma中,然后将其部署到AWS中 -上一次我尝试在该块中运行的过程完全相同。 。

如您所知 ,Sigma代表您管理与应用有关的许多“幕后”工作,包括功能许可, 触发器配置和相关资源 。 这取决于代码中遵循的某些语法准则,幸运的是,这些准则非常简单和普通。 因此,我们要做的就是获取原始源代码,将其粘贴到Sigma中,然后进行一些调整和拖放配置 ,而Sigma将理解并处理其余的内容。

如果您还没有这样做,现在是注册Sigma的绝佳时机,这样我们就可以开始以无服务器的出色表现激发您的灵感。 (除了繁琐的工作,您确实需要一个Sigma帐户才能访问IDE 。)请参阅此小型指南 。

进入后,只需从AWS文档中复制S3缩略图示例代码,然后将其推入Sigma的喉咙即可。

编辑本来会很平淡无聊,但现在开始显示一些有趣的东西。 特别是在编辑区域的左边界。

顶部的闪电符号(与带有突出显示的event变量的函数标题相对)表示触发器 ; lambda函数的调用(入口)点。 尽管这不是功能本身的一部分,但仍应使用必要的源(S3存储桶),目标(lambda函数)和权限来正确配置它。

好消息是,使用Sigma,您只需要指示源(S3存储桶)配置即可 ; Sigma将负责其余的工作。

此时,闪电符号为红色,表示尚未配置触发器 。 只需将S3条目从左窗格拖到上一行(函数标题),以向Sigma指示此lambda应该由S3事件触发。

一旦完成拖放操作,Sigma就会询问您缺失的谜题:即S3存储桶(应作为lambda的触发点)以及触发该操作的操作的性质; 在我们的例子中,这是图像文件的“对象创建”事件 。

在指定源存储桶时,Sigma提供了两种选择:您可以选择

  • 通过下拉列表(“ 现有存储桶”标签)选择一个现有存储 ,或
  • 通过“ New Bucket”选项卡定义一个新的存储桶名称,以便Sigma在项目部署中重新创建它。

由于“图像文件”类别涉及多种文件类型,因此我们需要为lambda定义多个触发器,每个触发器对应于不同的文件类型。 (不幸的是,S3触发​​器尚不支持文件名前缀/后缀的模式 ;如果支持 ,则可以只使用一个触发器!)因此,让我们首先通过选择“创建对象”作为事件来定义JPG文件的触发器,然后输入“ .png”作为后缀,然后拖放并配置另一个触发器,以“ .jpg”作为后缀-您猜对了,就是JPG文件。

选择第二个触发器的存储桶时,需要记住一点:即使为第一个触发器输入了新的存储桶名称,也必须从“现有存储桶”选项卡中选择相同的,已经定义的存储桶。第二个触发条件,而不是再次将存储桶名称作为“新”存储桶提供。 原因是Sigma会跟踪每个新定义的资源(因为它必须在部署时创建存储桶),并且,如果两次定义一个新存储桶,Sigma将会感到“困惑”,并且部署可能无法按计划进行。 为减轻歧义,当我们在现有存储桶列表下显示新定义的存储桶时,我们将其标记为“((新)”)(例如,新添加的my-new-bucket my-new-bucket (New) )–至少对于现在,直到我们找到更好的选择; 如果您有个不错的主意,请随时加入! 。

现在两个触发器都已准备就绪,我们可以继续进行操作了

您可能已经注意到编辑器的左窗格中两个S3图标,它们在触发指示器的下方,紧靠s3.getObjects3.putObject调用。 这两个操作的参数块也将突出显示。 这表明Sigma已经确定了API调用,并可以通过自动生成必要的提示使它们正常工作(例如执行权限)来帮助您。

单击第一个图标(与s3.getObject )以打开操作编辑弹出窗口。 我们要做的就是为Bucket参数选择正确的存储桶名称(同样,请确保在“现有”标签上选择带“(新)”前缀的存储桶,而不是在输入框上重新输入存储桶名称。 “新”标签),然后点击更新

同样,使用第二个图标( s3.putObject ),选择目标存储桶。 由于我们尚未添加或使用目标存储桶定义,因此您将在Sigma中添加新的存储桶定义。 因此,您可以选择现有的存储桶或为新的存储桶命名,就像第一个触发器一样。

仅需一步:添加依赖项。

虽然Sigma为您提供了将第三方依赖项添加到您的项目的功能的出色功能,但它确实需要在构建时知道依赖项的名称和版本。 由于我们将一个陌生的代码块复制并粘贴到了编辑器中,因此我们应该分别告诉Sigma有关代码中使用的依赖项,以便将它们与我们的项目源捆绑在一起。 只需单击工具栏上的“添加依赖项”按钮,搜索依赖项并单击“添加”,所有添加的依赖项(以及两个默认值aws-sdk@slappforge/slappforge-sdk )都将显示在依赖项下拉列表中-在“添加依赖项”按钮下。

在本例中,必须遵循原始的AWS示例准则 ,我们必须添加async (对于瀑布式执行流)和gm (对于GraphicsMagick )依赖项。

做完了!

现在剩下的就是单击IDE工具栏上的Deploy按钮,使轮子运动!

首先,Sigma将把应用程序源保存(提交)到您的GitHub存储库中。 因此,请确保在Sigma要求您提供一个不错的提交消息时:)您也可以选择自己喜欢的回购名称,如果不存在,Sigma会创建它。 (但是,在遇到“空”存储库(即没有主分支的仓库)时,Sigma有一个已知的故障,因此,如果您有全新的存储库,请确保对主分支进行至少一次提交;最简单的方法是创建自述文件,只需在创建回购文件时单击一下即可轻松完成 。)

保存完成后,Sigma将自动构建您的项目,并打开一个部署摘要弹出窗口,其中显示与新的S3缩略图生成器有关的所有内容。 一些名称看起来有些乱七八糟,但它们通常会反映已部署资源的类型和名称(例如s3MyAwesomeBucket可能代表一个名为my-awesome-bucket的新S3存储my-awesome-bucket )。

查看列表(如果您愿意),然后单击Deploy 。 部署机制将启动,显示实时进度栏(以及显示项目基础CloudFormation堆栈中发生的更改的日志视图)。

部署完成后,您期待已久的缩略图生成器lambda就可以进行测试了! 只需将JPG或PNG文件上传到您选择的源存储桶(通过S3控制台 ,或者如果您更像我,则通过aws s3 cp ),然后惊叹于将在目标存储桶中弹出的缩略图秒!

如果在目标存储桶中没有发现任何有趣的东西(稍等一会儿),则可以像检查其他lambda一样检查lambda的执行日志 ,以检查出了什么问题。 我们知道回到AWS控制台执行此操作是很痛苦的,我们也希望很快找到一种更酷的替代方法。

如果您想将生成的缩略图公开(就像我在前一篇文章中所说的那样,私有缩略图有什么用?),您不必四处阅读IAM文档,更新IAM角色并摆脱困境。 只需单击s3.putObject调用上的S3操作编辑图标,从s3.putObject列表中选择“ public-read应用于对象的ACL”参数作为public-read ,然后单击“ Deploy”经历另一个保存-构建-部署周期。 (我们已经在努力加快这些“零钱”部署的速度,所以现在就让我们忍受:))新部署完成后,要查看任何新生成的缩略图,您只需输入URL http://<bucketname>.s3.amazonaws.com/resized-<original image name>放入您喜欢的Web浏览器,然后按Enter!

哦,如果您遇到任何异常情况-提交/构建/部署失败,异常错误或Sigma自身的错误-别忘了通过Slack对我们进行ping操作或将问题发布到我们的公共问题跟踪器上 ; 您可以使用“帮助”→“报告问题”菜单项直接在IDE中进行操作。 对于您以后希望在Sigma中看到的任何改进或出色功能,也是如此:更快的构建和部署,下载构建/部署工件的能力,崭新的主题集等等。 请告诉我们,我们会将其添加到待办事项中,并在不远的将来尝试一下!

好的,各位,是时候回去开始与Sigma一起玩了 ,而我写了我的下一篇博客文章! 请继续关注SLAppForge的更多信息!

翻译自: https://www.javacodegeeks.com/2018/03/no-more-running-around-the-block-lambda-s3-thumbnailer-nailed-by-slappforge-sigma.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/347974.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

sqlyog设置自动补全_Visual Studio Code 最好的功能、插件和设置

Visual Studio Code 是由 Microsoft(微软) 发布的一个免费的&#xff0c;开源的跨平台文本编辑器。他们基于在线编辑 Visual Studio Online (代号为 “Monaco”)&#xff0c;并结合 GitHub 的 Electron 实现的一个跨平台编辑器。他们在为程序员创建一个快速且高效工作环境方面取…

ejb 示例 2018_Java EE EJB拦截器教程和示例

ejb 示例 2018在此示例中&#xff0c;我们将看到如何在EJB中使用拦截器并使用简单的Web应用程序对其进行测试。 1.简介 顾名思义&#xff0c;当您想拦截对EJB方法的调用时&#xff0c;将使用拦截器。 如果为Bean声明一个拦截器&#xff0c;则每次调用该Bean的方法时&#xff0…

linux怎么使用串口线,如何在Linux下使用USB转串口线,鼎力告诉您

亲爱的朋友&#xff0c;如果您使用的Linux的系统&#xff0c;应该怎么来使用我们的鼎力的USB转串口线呢&#xff1f;下面就来告诉您吧&#xff01;用Linux&#xff0c;不需要另外安装USB转串口驱动!前提是你要先安装minicom输入命令&#xff1a;dmesg| grep usb&#xff0c;看到…

comsol分析时总位移代表什么_超弹性材料模型的压缩分析

为了表征超弹性材料&#xff0c;需要进行各种测试获取实验数据&#xff0c;包括承受单轴拉伸和压缩、双轴拉伸和压缩以及扭转测试。今天&#xff0c;我们向大家介绍如何使用通过单轴和双轴测试获得的拉伸和压缩测试数据&#xff0c;模拟由弹性泡沫材料制成的球体的压缩。通过案…

由对称性知定点一定在x轴上_线上优秀教学案例(九)|计算机科学与工程学院刘钊:“延期不延教”之“1+X课堂”...

【编者按】受新冠肺炎疫情影响&#xff0c;按照教育部和河北省教育厅统一部署&#xff0c;学校延迟春季开学时间。为最大程度减少疫情和延期开学对我校教育教学工作的影响&#xff0c;本学期&#xff0c;我校以线上教学的形式拉开序幕。面对新的教学模式&#xff0c;各学院、广…

和显卡驱动要配套吗_天天学渲染,你的显卡驱动用对了吗?

大家好&#xff0c;最近一直有很多人和我反馈说&#xff0c;自己在使用Octane或者Redshift渲染器渲染的时候经常容易崩溃&#xff0c;甚至是闪退了&#xff0c;其实这个问题有很大一部分原因是由于你的显卡驱动没用对导致的。接下来就和大家说下如何解决。首先我们大部分人买了…

网络研讨会:Java 9的第一印象–构建可伸缩企业应用程序的新方法

在此网络研讨会上听我们对新Java版本的一些初步想法 Java 9的新版本引起了很多炒作。在Mark Reinhold领导的专门团队的带领下&#xff0c;将Java平台迁移到模块花费了近十年的辛苦工作。 除了备受期待的Project Jigsaw&#xff0c;此版本还包含许多其他令人兴奋的功能。 现在是…

noj数据结构稀疏矩阵的加法十字链表_一个算法毁了一款好游戏?算法和数据结构到底有多重要?...

来源 | 异步前段时间大火的国产游戏——《太吾绘卷》&#xff0c;由于创新的玩法和精良的制作一度广受好评&#xff0c;然而随着玩家游戏的深入和时长的积累&#xff0c;发现该游戏在玩的过程中游戏外的问题很多很多。首先是存档速度慢&#xff0c;然后是密集的计算导致功耗大量…

arm-linux-gcc libstdc .so.6,mini2440编译内核:usr/lib/libstdc++.so.6 not found

买了块mini2440开发板&#xff0c;按照光盘中的mini2440用户手册编译内核时&#xff0c;#make zImage出现错误&#xff1a;usr/lib/libstdc.so.6 not found&#xff0c;在网上百度了下&#xff0c;有很多不同的解决办法&#xff0c;我试了一个&#xff0c;编译成功 ^ ^注&#…

前端实现可绘制的canvas画布_前端图形学基础(五)——Canvas状态管理

点击右上角的关注&#xff0c;不定期前端干货分享&#xff01;&#xff01;欢迎来到我的前端图形学系列文章&#xff1a;前端图形学基础(一)——Canvas基础入门前端图形学基础(二)——Canvas基础前端图形学基础(三)——Canvas绘制图片前端图形学基础(四)——Canvas绘制曲线我们…

having和where可以同时使用吗_阴、阳离子聚丙烯酰胺可以同时混合溶解使用吗?...

聚丙烯酰胺是一种水处理药剂&#xff0c;需要溶解在水中制成浓度为0.1%-0.5%的聚丙烯酰胺水溶液。一般来说&#xff0c;当聚丙烯酰胺实际使用时&#xff0c;阴离子聚丙烯酰胺和阳离子聚丙烯酰胺可以同时使用。但是&#xff0c;阳离子聚丙烯酰胺和阴离子聚丙烯酰胺不能混合在一起…

Lombok,AutoValue和Immutables,或如何编写更少,更好的代码返回

在上一篇有关Lombok库的文章中 &#xff0c;我描述了一个库&#xff0c;该库有助于处理Java中的样板代码&#xff08; 是的&#xff0c;我知道这些问题已经在Kotlin中解决了 &#xff0c;但这是现实生活&#xff0c;我们不能一味地坐下来&#xff0c;一旦出现较新或更简单的语言…

福州PHP讲师招聘_“艺”起就业|招聘信息汇总

亲爱的美术学院毕业生们在全国上下万众一心抗击新冠肺炎疫情的关键时期学院党委高度重视并时刻关注着每一位毕业生的就业工作为进一步做好疫情防控工作也为进一步确保同学们顺利求职就业保障毕业生就业工作的时效性学院公众号特别设立“艺”起就业—招聘信息发布栏目 由院学工…

哪个app最费电_关于石墨烯养生地暖,业主最关心的几大问题,答案附上!

很多人对石墨烯地暖有些许误解&#xff0c;不敢轻易接受。其实不然&#xff0c;石墨烯地暖是一种供热效果好、安全性高、运用寿命长、节能环保的新型健康采暖方式&#xff0c;不仅适用于住宅小区、别墅等家庭采暖&#xff0c;也可用于办公楼、医院等各类公共建筑采暖。在众多对…

cpu 抖动_微抖动,繁忙的等待和绑定CPU

cpu 抖动性能分析新机器 当我在新机器上工作时&#xff0c;我想了解它的局限性。 在这篇文章中&#xff0c;我将研究机器的抖动以及忙于等待本周末构建的新PC的影响。 该机器的规格很有趣&#xff0c;但不是发布目的。 永远不要少于它们&#xff1a; i7-3970X六核运行于4.5 GH…

两端分散对齐怎么设置_Word文字很难对齐?用这4个方法,2秒可对齐所有文字!...

日常工作中&#xff0c;我们在给Word文档进行对齐操作的时候&#xff0c;很多人都是猛敲空格键来对齐文字&#xff0c;通常是一顿操作猛如虎&#xff0c;仔细一看原地杵。简单的文字对齐&#xff0c;这种方法可能还算凑效&#xff0c;但稍显复杂的就不那么管用了。今天叨叨君就…

怎样学c++程序语言,如何学好 C++——学习门槛最高的编程语言

根据InfoQ 编程语言 2 月排行榜&#xff0c;统计发现&#xff0c;学习门槛最高的编程语言是 C。那么如何学好这门又难、门槛又高的语言呢&#xff1f;前面我们介绍过C。C是一种面向对象的计算机程序设计语言&#xff0c;由美国AT&T贝尔实验室的本贾尼斯特劳斯特卢普博士在2…

首个JDK 10(18.3)发行候选版(内部版本43)展示了新的版本控制方案

Mark Reinhold的帖子“ JDK 10&#xff1a;First Release Candidate ”宣布“内部版本43中没有未解决的P1错误”&#xff0c;并将Build 43命名为最初的JDK 10版本候选 。 Reinhold帖子还指向“ JDK 10 Early Access Builds ”页面&#xff0c;该页面包含发行说明的链接。 到基于…

7 centos 查看程序文件数量_CentOS之使用Systemd添加自定义系统服务

文章引言Systemd 就是为了解决Linux 的启动一直采用init进程问题而诞生的。它的设计目标是&#xff0c;为系统的启动和管理提供一套完整的解决方案。根据 Linux 惯例&#xff0c;字母d是守护进程&#xff08;daemon&#xff09;的缩写。 Systemd 这个名字的含义&#xff0c;就是…

做完c语言通讯录系统后的小结,c语言通讯录管理系统的总结

c语言通讯录管理系统的总结c语言通讯录管理系统的总结c语言课设管理系统总结完成情况防暴力输入密码加密输入并删除管理员和用户端两个端管理员对用户的账号删除注册用户用户的账户名及密码修改用户基本操作管理员基本操作存在的问题管理员无法对用户的数据进行修改未使用链表由…