如何把创建ECS(CreateInstance)作为触发器来触发函数计算

问题描述

函数计算虽然不支持直接集成到ECS的管控事件上,但是函数计算本身是支持日志服务作为触发器的。即可以配置日志服务中logstore里的增强日志作为触发器来触发函数计算服务中的函数,同时可以传递project 和 logstore的name以及beginCursor/endCursor 等相关日志信息作为event到函数计算服务,供其做二次处理和加工。

这样相当于提供了一个思路,即我们可以把创建ECS或者其他相关的操作想办法作为日志投递到日志服务中,这样就可以触发相关的函数计算服务了。

那么这种方法是什么呢?一种可行的方式是操作审计服务。操作审计可以记录所有API级别的用户记录,当然也包括CreateInstance这类操作。

所以整个流程就变成了:
开通操作审计服务->配置操作审计跟踪,将event投递到日志服务中->配置日志服务作为函数计算触发器并传递日志->触发函数

举个栗子

开通操作审计服务后,创建一个日志跟踪

然后创建一个实例,可以看到操作审计记录了这个行为

同时日志服务里也找到了这个行为记录

接下来我们可以配置一个函数计算服务,具体的过程可以参考文中最后的文档,这里强调下配置触发器的配置,这里要注意的是图中有关logstore的配置,上面的是触发日志的logstore,下面的是写日志的lostore,不能搞混。

然后复制进去一段代码,这段代码的核心是拿到触发event的具体日志信息,然后写到函数计算本地的日志库里。

# -*- coding: utf-8 -*-
import logging
import json
from aliyun.log import LogClient
from time import time
def logClient(endpoint, creds):logger = logging.getLogger()logger.info('creds info')logger.info(creds.access_key_id)logger.info(creds.access_key_secret)logger.info(creds.security_token)accessKeyId = 'XXX'accessKey = 'XXX'client = LogClient(endpoint, accessKeyId, accessKey)return client
def handler(event, context):logger = logging.getLogger()logger.info('start deal SLS data')logger.info(event.decode().encode())info_arr = json.loads(event.decode())fetchdata(info_arr['source'],context)return 'hello world'
def fetchdata(event,context):logger = logging.getLogger()endpoint = event['endpoint']creds = context.credentialsclient = logClient(endpoint, creds)if client == None :logger.info("client creat failed")return Falseproject = event['projectName']logstore = event['logstoreName']start_cursor = event['beginCursor']end_cursor = event['endCursor']loggroup_count = 10shard_id = event['shardId']while True:res = client.pull_logs(project, logstore, shard_id, start_cursor, loggroup_count, end_cursor)res.log_print()next_cursor = res.get_next_cursor()if next_cursor == start_cursor :breakstart_cursor = next_cursor#log_data =  res.get_loggroup_json_list()return True

以上配置完成后,一个控制台创建ECS(当然也包括其他可以被审计的行为)的行为就可以用来触发函数计算的函数了。

结果

我们把刚才创建的实例再释放掉,看到操作审计的日志

然后我们在函数计算的日志库里也看到了对应的日志,这个日志是刚才操作审计记录的日志传递给函数计算并记录的。在真正的应用场景下,客户可以拿到这个日志中的相关信息做更多操作。

总结

  1. 产品侧无法直接支持的功能,可以看下是否有workaround
  2. 很多阿里云产品之间的集成,都可以看下是否可以通过日志服务来做。


原文链接
本文为云栖社区原创内容,未经允许不得转载。

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

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

相关文章

ORACLE添加字段、删除字段

文章目录1. 删除表2. 创建表3. 添加字段4. 删除指定字段5. 修改指定字段长度1. 删除表 DROP TABLE SYS_JOB;2. 创建表 -- CREATE TABLE CREATE TABLE SYS_JOB (JOB_ID NUMBER(30) NOT NULL,JOB_NAME VARCHAR2(30) NOT NULL ); ALTER TABLE SYS_JOB ADD CONSTRA…

像数据科学家一样思考:12步指南(中)

像数据科学家一样思考:12步指南(上)《像数据科学家一样思考》 7-工程产品 下一步是建立统计软件。如果统计是分析和从数据中得出结论的框架,那么软件就是将这个框架付诸行动的工具。数据科学家必须为任何项目做出许多软件选择。如…

2020云计算,是四强争霸还是赢家通吃?

来源 | 架构师技术联盟责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)近日,谷歌母公司Alphabet首次公布了谷歌云计算业务的数据,这一举动将云计算行业重新推到了聚光灯下。众所周知,全球云市场竞争激烈&…

加载程序中数据库账号密码加密策略wallet_04

文章目录1. 切换到oracle用户2. 创建wallet目录3. 创建wallet 账户4. 查看创建的wallet5. 创建wallet目录6. 查看证书7. 把证书拷贝到客户端8. 在客户端的sqlnet.ora里添加9. 客户端的tnsnames.ora10. 测试登陆11. oracle环境变量oracle服务端创建wallet 1. 切换到oracle用户 …

利用丁香园数据生成疫情分布地图(R语言)| 博文精选

来源 | CSDN 博客作者 | 万里写入胸怀间责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)疫情牵动大家,除了做好分内工作,管好自己不给社会添乱,也就是只能持续关注疫情了。现在各大门户平台都上线了疫情实时地…

php连接数据库性能测试,无需安装配置,多操作系统支持数据库及性能测试

iBoxDB是一个NoSQL数据库, 有SQLite的特性,但拥有更强大的Replication功能,支持更多的数据类型,自动完成ORMSQLite是全球知名度Top 10的数据库之一, 在文章 中对 SQLite 与 MySQL进行了一个事务中1万次插入测试, 测试的结果是"sqlite3用时仅0.4s,mysql用时2.2s"iBoxD…

ORACLE 添加和查看注释

文章目录一、表二、字段一、表 #1.给表加注释 COMMENT ON TABLE SYS_JOB IS 任务调度表;#2.查看表的COMMENT SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAMETABLENAME; 例如: SELECT * FROM USER_TAB_COMMENTS WHERE TABLE_NAMESYS_JOB;二、字段 # 1.给字段加…

一次开发、多端分发,阿里巴巴发布AliOS车载小程序

4月16日上海国际车展首日,阿里巴巴小程序有了新动态:正在研发基于AliOS的车载小程序。 AliOS展出车载小程序、AI HUD、AI驾驶舱等最新技术 作为阿里巴巴小程序在车载场景的重要延伸,AliOS车载小程序和支付宝、高德等小程序一样,将…

基于TableStore的海量气象格点数据解决方案实战

前言 气象数据是一类典型的大数据,具有数据量大、时效性高、数据种类丰富等特点。气象数据中大量的数据是时空数据,记录了时间和空间范围内各个点的各个物理量的观测量或者模拟量,每天产生的数据量常在几十TB到上百TB的规模,且在…

腾讯会议扩容背后:100万核计算资源全由自研服务器星星海支撑

疫情期间,远程会议及协同办公需求暴增。从1月29日开始到2月6日,腾讯会议每天都在进行资源扩容,日均扩容云主机接近1.5万台,8天总共扩容超过10万台云主机,共涉及超百万核的计算资源投入。 值得一提的是,腾讯…

实时计算无线数据分析

本文为您介绍实时计算在无线数据分析中的应用。阿里云实时计算可以为无线App的数据分析场景实时化助力,帮助您做到实时化分析手机AP的各项指标,包括App版本分布情况、Crash检测和等。 阿里云移动数据分析 (Mobile Analytics,下面简称MAN) 是…

对话阿里云Alex Chen:下一代存储应如何面对云转型?

数字经济"乘云而上"。 十年前,阿里云开始自主研发云计算操作系统飞天之路,开启了中国云时代; 十年后,阿里云在中国市场份额超过2-8名总和,培育了整个中国云计算市场,数字经济在云上蓬勃发展。 …

写给大数据从业者:数据科学的5个陷阱与缺陷

来源 | AI 前线作者 | 陈炬,责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)导读: 这篇分享主要总结了数据从业人员在实践中可能遇到的陷阱与缺陷。跟其他新起的行业一样,数据科学从业人员需要不停的去考虑现…

阿里云数据库自研产品亮相国际顶级会议ICDE 推动云原生数据库成为行业标准

4月9日,澳门当地时间下午4:00-5:30,阿里云在ICDE 2019举办了主题为“云时代的数据库”的专场分享研讨会。 本次专场研讨会由阿里巴巴集团副总裁、高级研究员,阿里云智能数据库产品事业部负责人李飞飞(花名:飞刀&#…

大神如何一招完美解决Hadoop集群无法正常关闭的问题!| 博文精选

来源 | CSDN 博客作者 | Alice菌,责编 | Carol出品 | CSDN云计算(ID:CSDNcloud)相信对于大部分的大数据初学者来说,一定遇见过Hadoop集群无法正常关闭的情况。有时候当我们更改了Hadoop内组件的配置文件后,…

现代IM系统中的消息系统架构 - 架构篇

前言 IM全称是『Instant Messaging』,中文名是即时通讯。在这个高度信息化的移动互联网时代,生活中IM类产品已经成为必备品,比较有名的如钉钉、微信、QQ等以IM为核心功能的产品。当然目前微信已经成长为一个生态型产品,但其核心功…

华南地区最大数据中心上线 阿里云河源数据中心正式开服

2月18日,阿里云在官网宣布,河源数据中心正式对外提供服务。这是华南地区规模最大的绿色数据中心,可容纳超过30万台服务器,作为深圳地域的新可用区为华南地区上百万企业客户提供领先的云计算、人工智能、物联网等服务。 据悉&#…

在阿里做了五年技术主管,我有话想说

阿里妹导读:在历史文章《如何成为优秀的技术主管?》中,阿里巴巴高级技术专家云狄从开发规范、开发流程、技术规划与管理三个角度,分享对技术 TL 的理解与思考。 今天的文章,他将继续深入探讨这一话题,从管理…

Fish Redux中的Dispatch是怎么实现的?

零.前言 我们在使用fish-redux构建应用的时候,界面代码(view)和事件的处理逻辑(reducer,effect)是完全解耦的,界面需要处理事件的时候将action分发给对应的事件处理逻辑去进行处理,…