无需再忙了: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,一经查实,立即删除!

相关文章

wap(dopra linux )命令,运营商定制的华为光猫Telnet命令恢复华为界面

首先Telnet连接光猫Welcome Visiting Huawei Home GatewayCopyright by Huawei Technologies Co., Ltd.Login:rootPassword:User name or password is wrong, please try it again!Login:rootPassword:adminWAP>suERROR::Command is not existedWAP>lsERROR::Command is …

请简述gouraud光照模型_《计算机图形学》试卷及答案

一、填空题(每空0.5分&#xff0c;共 1 0 分)1、 计算机图形学中的图形是指由点、线、面、体等 和明暗、灰度(亮度)、色彩等 构成的&#xff0c;从现实世界中抽象出来的带有灰度、色彩及形状的图或形。 2、 一个计算机图形系统至少应具有 、 、输入、输出、 等基本功能。3、 常…

linux下运行yolo,Ubuntu下CPU/GPU模式YOLOv3代码运行

YOLO是近几年物体检测主要算法之一&#xff0c;2018年已发展到YOLOv3&#xff0c;是目前速度最快的物体检测算法&#xff0c;详细内容可查看YOLO主页。YOLO的主要优势在于基于纯C语言编写的DarkNet&#xff0c;可查看DarkNet主页&#xff0c;不需要其他依赖库&#xff0c;跨平台…

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;看到…

stlink 升级固件以后失败_STM32固件升级的一点经验

上面理论实践当初花了3天时间弄完的&#xff0c;但是&#xff0c;当你真正做项目的时候&#xff0c;你会发现&#xff0c;只有上面的这些知识还不够&#xff0c;还有更多的细节要去处理&#xff1a;APP程序怎么跳转到BootLoader程序&#xff1f;APP程序和BootLoader之间是否会互…

linux搭建Django环境,Linux (ubuntu 12.04)下搭建Python Django环境

1. 检查python是否安装&#xff1a;直接在shell里输入python&#xff0c;如果已经安装了python&#xff0c;即可进入python bash&#xff0c;并看到版本号(如Python 2.7.3)——在ubuntu中python应该是已经默认安装好了2. 安装Django:sudopythonsetup.pyinstall检查Django是否安…

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

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

linux函数计时,Linux 中的计时——gettimeofday函数

&#xff11;.使用C语言进行计时在用户空间中可以使用C语言函数gettimeofday 得到时间&#xff0c;它的调用格式是&#xff1a;#include int gettimeofday(struct timeval *tv, struct timezone *tz);int settimeofday(const struct timeval *tv , const struct timezone *tz);…

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

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

cxf restful_使用Apache CXF开发RESTful服务

cxf restful介绍 如您所知&#xff0c;有两种开发Web服务的方法 简单对象访问协议&#xff08;SOAP&#xff09; 代表性状态转移&#xff08;REST&#xff09; 在继续学习如何使用Apache CXF创建基于REST的Web服务之前&#xff0c;我们将了解什么是REST。 REST不是一种技术&…

linux adc测试程序,基于Qt4.7的ADC测试程序

所使用的开发板&#xff1a;友善之臂tiny6140widget.h#ifndef WIDGET_H#define WIDGET_H#include #include namespace Ui {class Widget;}class TMainForm : public QWidget{Q_OBJECTpublic:TMainForm(QWidget * parent 0, const char * name 0, Qt::WFlags f 0);virtual ~T…

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

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

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

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

linux cat 文本颜色,linux文本文件查看、展示命令 :cat head tail grep more less nl

linux文本文件查看、显示命令 :cat head tail grep more less nllinux文本文件查看、显示命令 :cat head tail grep more less nl1、cat 显示文件内容命令。命令格式&#xff1a;#cat [[选项]] 常用选项:-b,计算所有非空输出行&#xff0c;开始行编号为1。-n&#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绘制曲线我们…

sudo su su_Spring Security应用程序中的su和sudo

sudo su su很久以前&#xff0c;我从事的项目具有很强大的功能。 有两个角色&#xff1a;用户和主管。 主管可以以任何方式更改系统中的任何文档&#xff0c;而用户则更受工作流约束的限制。 当普通用户对当前正在编辑并存储在HTTP会话中的文档有疑问时&#xff0c;主管可以介入…