aws创建新的lambda_使用AWS Lambda在半小时内创建高度可扩展的网站监控服务

news/2024/5/10 22:14:19/文章来源:https://blog.csdn.net/dfsgwe1231/article/details/107270447

aws创建新的lambda

Lambda函数确实是一项很棒的技术 ,如果您还没有读懂我的理论,即无服务器 (尤其是AWS Lambda)将在2018年占领世界,那么请在此处查看:

无服务器计算将如何在2018年改变世界
无服务器计算是一个相当新的概念,在受欢迎程度方面已经有了爆炸性增长。 这部分是由于… hackernoon.com

它吸引了一些读者,并且以某种方式被标记为1月1日最受读者欢迎的中篇文章之一……我想这肯定是一个缓慢的新闻日。

无服务器到底能做什么?

我宣传这些无服务器技术非常好,但是并没有向您展示该技术的真正潜力。

因此,为了向您展示Lambda的真正潜力,我想我将汇总如何指导并向您展示该技术的真正作用!

UpTimeGirl简介—我最新的百万美元创业公司

在本文中,我将构建一个网站正常运行时间监视器,该监视器将允许人们填写表单,它将为您自动神奇地创建一个新的lambda函数,该函数每15分钟检查一次网站的运行状况,并向您发送如果其中一个网站死亡,则发送电子邮件。 我将更多地关注面向Lambda的概念,并讨论诸如IAM和角色设置之类的事情。

每个好的初创公司都需要一个易记的名称,因此我们将其称为UpTimeGirl网站监控服务,这是对Billy Joel的一种UpTimeGirl吗?

免责声明:如果您从这个想法中赚了一百万美元,我希望至少有一杯啤酒!

要求

由于这是一个软件项目,因此需要一系列要求,否则我们将如何从项目中定义成功的任何形式? 当我想为我的所有站点构建一个世界一流的,价值数百万美元的监视解决方案时,我希望它具有以下要求:

  • 它绝不能掉下去。
  • 它必须便宜运行。 当然,我们需要最大化利润。
  • 每当网站出现故障时,它都必须通过短信或电子邮件通知我
  • 它必须扩展到数百个(如果不是数千个)站点。

我们将在不到半小时的时间内完成一个项目的一系列相当不错的要求,我想您会同意的。

前端

前端将是一个简单的VueJS应用程序,它将具有一个输入框和一个显示当前已注册网站的图块列表,该输入框将用于监视新站点。

为什么选择VueJS? —我目前正在尝试学习它,以为为什么不呢?

这将是一个非常简单的前端,如下所示:

如果您想要此源代码,则可以在我的github存储库中找到它: https : //github.com/elliotforbes/uptimegirl

我目前仅使用一个非常简单的HTTP GET请求来触发构造lambda函数的Python API。

API

该API将使用Python编写,并将使用Boto3 AWS开发工具包使我能够与AWS的各种API进行交互。 该API本质上将采用URLtime_period ,并将根据这些参数动态生成和创建新的Lambda函数。

免责声明:我可以保证这还没准备好生产。

在这段代码中,我们在Python 3.6中创建了一个简单的aiohttp REST API 。 这将具有2个主要端点,分别可以通过/funcs/create访问的get_functions端点和create_lambda_function端点。

get_functions()函数中,我们仅返回一个json响应,其中包含当前在Lambda服务中注册的所有函数。

create_lambda_function()函数很有趣。 在此,我们创建一个我们希望传递的所有环境变量的字典对象。在这种情况下,我们只是传递我们希望监视的URL 。 为了某种程度上确保唯一的函数名,我们然后使用一点点正则表达式魔术从URL创建一个字母数字函数名。

完成此操作后,我们将创建Code字典对象,该对象将简单地将lambda.zip文件作为字节传递。 然后,我们将env dict和code dict都传递到AWS的create_function函数中,这有望为我们创建lambda函数。

之后,我们尝试通过使用put_targets()函数并将我们已经在AWS控制台中定义的15分钟规则的名称以及目标列表传递给我们,将CloudWatch Event触发器附加到我们新创建的lambda函数。 ,在这种情况下为单个目标。

一旦所有这些都愉快地运行了,我们将返回一个简单的非json(我知道……对不起)响应。

在github存储库中,我包括了一个可以在AWS ECS上运行和部署的dockerfile,如果您希望沿该路线运行,那么现在我将其全部保留在localhost上,因为显然还有很多开发工作要做完成。

Lambdas

我们将动态创建的Lambda函数实际上将尝试使用简单的GET请求来获取传递给它的所有URL。 然后,我们将根据用来触发每个功能的CloudWatch Event规则每15分钟运行一次。

如果这些计划的请求中的任何一个碰巧失败,那么它将自动将事件发布到SNS,SNS然后将发送电子邮件,并将文本消息发送给订阅该SNS的任何人。

代码

我们的lambda函数的代码非常简单。 它所做的只是尝试将GET请求发送到URL,该URL会从我们动态创建函数时设置的环境变量中获取。 如果此请求失败,则将引发异常。

如果我们希望我们的系统将任何错误通知我们,那么我们可以采用两种不同的方法之一。 我们可以扩展Lambda函数并添加将其发布到SNS主题所需的代码,也可以在我们的Lambda函数之一报告错误时抛出CloudError时在CloudWatch上设置警报。

为了简单起见,我们将选择后者:

和繁荣! 我们有一个警报系统,只要系统出现故障,它都会向我们发送电子邮件。

订阅该SNS主题的人员列表可以由前端动态修改,但是一旦我们通过了创业公司的第一轮融资,我们就需要做一些工作。

我们正在生产中!

在不到半小时的时间内,我们已经能够使用一系列lambda函数成功构建一个完整的监控解决方案,这些函数现已投入使用并投入生产。

它不仅具有令人难以置信的弹性,而且还可以扩展到潜在的数千个站点,并且由于我们创建的lambda的性质非常小,因此这样做的成本很小。

通过创建新的lambdas来协调添加新站点的前端和API尚未在本文中部署到ECS,因为我认为这超出了范围,但是如果您想以此为起点,则可以使用Dockerfile。 。 如果您真的很想使用元数据,则可以完全从Lambda函数提供前端应用程序,并使用API​​网关对其进行前端处理,然后将Python API划分为一系列Lambda端点,但我将其作为后续任务读者!

仍然有很多事情可以改善,但是我希望这个简单的例子有助于突出Lambda函数的强大功能以及如何使用它们。 在传统的应用程序中,您不仅必须编写大量代码,而且还必须将其部署在多个可用性区域中。 这些都代表了额外的复杂性,要​​花更多的时间来构建和发布。

结论

希望您发现本文很有见地和愉快! 如果您需要进一步的帮助来设置这些lambda函数,请随时在下面的评论部分中发表评论或发布一条推文: Elliot Forbes

我也想加入LinkedIn 。

对于那些经常关注我并喜欢我的写作风格的人,我正在通过LeanPub出版我的第二本书,题为:通过故事介绍云开发! 如果您想同时支持我自己和EFF,请查看!

云开发简介
本书对云开发领域进行了简要介绍。 我们将深入研究… leanpub.com

翻译自: https://hackernoon.com/creating-a-website-monitoring-service-in-half-an-hour-using-lambdas-4f64fb199df3

aws创建新的lambda

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

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

相关文章

使用AWS Lambda在半小时内创建高度可扩展的网站监控服务

Lambda函数确实是一项很棒的技术 ,如果您还没有读懂我的理论,即无服务器 (尤其是AWS Lambda)将在2018年占领世界,那么请在此处查看: 无服务器计算将如何在2018年改变世界 无服务器计算是一个相当新的概念&a…

此时无法创建您的帐户_当您在网站上创建帐户时,真正发生了什么?

此时无法创建您的帐户编码语言的简单介绍。 斯坦利戴 ( Stanley Dai)摄影 认为编码不是一种技能,而是一种语言。 本系列将解释一些与编码相关的关键字,同时帮助您更好地了解与网站和应用程序交互时幕后发生的事情。 本系列的目的…

当您在网站上创建帐户时,真正发生了什么?

编码语言的简单介绍。 斯坦利戴 ( Stanley Dai)摄影 认为编码不是一种技能,而是一种语言。 本系列将解释一些与编码相关的关键字,同时帮助您更好地了解与网站和应用程序交互时幕后发生的事情。 本系列的目的不是要教您如何编码&am…

ssh网站服务器管理器,ssh secure shell client远程登录管理服务器操作步骤

SSH Secure ShellClient这款系统工具很多用户喜欢,方便快捷很适用于办公。下面给大家分享一下ssh secure shell client远程登录管理服务器操作步骤,希望大家喜欢。ssh secure shell client远程登录管理服务器操作步骤大家可以去官网下载(http://ultra.pr.erau.edu/~…

一篇博客让你学会部署社交网站( SVN+nginx+PHP+MySQL+MFS 内含所有源码包)

根据公司要求,实施过程大致如下:1 部署SVN服务器,为PHP程序员创建repo目录的访问账户,通知程序员可以导入代码2 部署nginx服务器3 部署PHP服务器4 部署MySQL主从服务器,根据程序员的要求创建数据库和表5 部署MFS6 发布…

Nginx proxy代理网站常用优化配置

#proxy代理网站常用优化配置如下,将配置写入新文件,调用时使用include引用即可 #[rootNginx ~]# vim /etc/nginx/proxy_params proxy_set_header Host $http_host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_a…

WordPress SEO ☞ WordPress网站终极优化指南

原文地址:http://www.eastdesign.net/wordpress-seo/ 最新消息,东方设计学院 WordPress SEO 系列视频教程正在持续更新中,目前为了不至于让视频传播过于泛滥,设置了登陆权限,有兴趣查看的用户可以简单填写一个索取测…

Nginxproxy代理网站常用优化配置_马立杰_新浪博客

#proxy代理网站常用优化配置如下,将配置写入新文件,调用时使用include引用即可#[rootNginx ~]# vim /etc/nginx/proxy_paramsproxy_set_header Host $http_host;proxy_set_header X-Real-IP $remote_addr;proxy_set_header X-Forwarded-For $proxy_add_x…

一次网站登录慢故障排查

昨天上午到公司,研发发邮件通知说有用户反映登录我们A站速度很慢,登录进去之后的操作都是正常的,所以基本可以排除网络与服务器压力大的因素。那么接下来就是看看数据库与缓存是否成为瓶颈,结果没有什么发现,毕竟A站是…

做一个普通网站到底有多难-100元+7天=3个站点

点击查看原文:做一个普通网站到底有多难-100元+7天=3个站点 oh 首先提醒你,这是一篇软文。什么-我不会写软文,也对,这是一篇你可以了解我做一个网站的简单省钱的过程,最起码这个一篇有用的软文。…

大学生网页作业之-个人主页、校园网站

作业要求 1、共用头部文件header.html,其它页面用iframe调用 2、首页文件模块丰富,要求带有姓名、学号、个人简介 3、要有注册页面,注册页面姓名、密码、邮箱,姓名要求A-Z、0-9和下划线组合,密码最少为6位&#xf…

大学生期末大作业之购物网站

作业 要求: 建立一个购物网站 1、至少8个网页(页面之间相互链接) 2、要求有表格布局的页面 3、要求有DIVCSS的页面(左中右浮动布局、上中下布局) 4、要求有图片轮播图效果(改变属性行为)和…

web网站加速之CDN(Content Delivery Network)技术原理

在不同地域的用户访问网站的响应速度存在差异,为了提高用户访问的响应速度、优化现有Internet中信息的流动,需要在用户和服务器间加入中间层CDN. 使用户能以最快的速度,从最接近用户的地方获得所需的信息,彻底解决网络拥塞,提高响应速度&…

node抓取58同城信息_如何使用标准库和Node.js轻松抓取网站以获取信息

node抓取58同城信息网络抓取工具是一种工具,可让我们选择网站的非结构化数据并将其转换为结构化数据库。 那么,网络刮板将在哪里派上用场呢? 我列出了我最喜欢的用例,以使您对启动自己的应用感到兴奋! Quora上的这个问…

如何使用标准库和Node.js轻松抓取网站以获取信息

网络抓取工具是一种工具,可让我们选择网站的非结构化数据并将其转换为结构化数据库。 那么,网络刮板将在哪里派上用场呢? 我列出了我最喜欢的用例,让您对启动自己的应用感到兴奋! Quora上的这个问题鼓励我构建网络刮板…

测试 node.js网站_在2018年测试Node.js

测试 node.js网站流为300亿以上的最终用户提供数据源。 在所有这些用户都依赖我们的基础架构的情况下,我们非常乐意测试投入生产的所有产品。 我们的主要代码库是用Go编写的,剩下的是Python。 我们最近的展示应用程序Winds 2.0是使用Node.js构建的&…

大型网站技术架构(五)网站高可用架构

2019独角兽企业重金招聘Python工程师标准>>> 网站的可用性(Avaliability)描述网站可有效访问的特性。 1、网站可用性的度量与考核 网站不可用时间(故障时间)故障修复时间点-故障发现(报告)时间点…

跟我一起数据挖掘(20)——网站日志挖掘

收集web日志的目的 Web日志挖掘是指采用数据挖掘技术,对站点用户访问Web服务器过程中产生的日志数据进行分析处理,从而发现Web用户的访问模式和兴趣爱好等,这些信息对站点建设潜在有用的可理解的未知信息和知识,用于分析站点的被访…

Shell脚本——批量检测网站是否异常并邮件通知

批量检测网站是否异常脚本 检测网站运行是否正常,如果不能正常访问,发送邮件通知管理员 curl -o /de/dev/null -s -w "%{http_code}" www.baidu.com 结果演示 访问失败,也又可能和网络等等原因有关。 所以我们要进行次数判断&a…

超级好用的解析JSON数据的网站

超级好用的解析JSON数据的网站 网址 http://json.parser.online.fr/beta/ 效果图 测试数据 {"city":{"id":1816670,"name":"Beijing","coord":{"lon":116.397232,"lat":39.907501},"country"…