真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

如何把創(chuàng)建ECS作為觸發(fā)器來(lái)觸發(fā)函數(shù)計(jì)算

這篇文章給大家介紹如何把創(chuàng)建ECS作為觸發(fā)器來(lái)觸發(fā)函數(shù)計(jì)算,內(nèi)容非常詳細(xì),感興趣的小伙伴們可以參考借鑒,希望對(duì)大家能有所幫助。

創(chuàng)新互聯(lián)專(zhuān)業(yè)提供內(nèi)蒙古服務(wù)器托管服務(wù),為用戶(hù)提供五星數(shù)據(jù)中心、電信、雙線(xiàn)接入解決方案,用戶(hù)可自行在線(xiàn)購(gòu)買(mǎi)內(nèi)蒙古服務(wù)器托管服務(wù),并享受7*24小時(shí)金牌售后服務(wù)。

問(wèn)題描述

函數(shù)計(jì)算雖然不支持直接集成到ECS的管控事件上,但是函數(shù)計(jì)算本身是支持日志服務(wù)作為觸發(fā)器的。即可以配置日志服務(wù)中l(wèi)ogstore里的增強(qiáng)日志作為觸發(fā)器來(lái)觸發(fā)函數(shù)計(jì)算服務(wù)中的函數(shù),同時(shí)可以傳遞project 和 logstore的name以及beginCursor/endCursor 等相關(guān)日志信息作為event到函數(shù)計(jì)算服務(wù),供其做二次處理和加工。

這樣相當(dāng)于提供了一個(gè)思路,即我們可以把創(chuàng)建ECS或者其他相關(guān)的操作想辦法作為日志投遞到日志服務(wù)中,這樣就可以觸發(fā)相關(guān)的函數(shù)計(jì)算服務(wù)了。

那么這種方法是什么呢?一種可行的方式是操作審計(jì)服務(wù)。操作審計(jì)可以記錄所有API級(jí)別的用戶(hù)記錄,當(dāng)然也包括CreateInstance這類(lèi)操作。

所以整個(gè)流程就變成了:
開(kāi)通操作審計(jì)服務(wù)->配置操作審計(jì)跟蹤,將event投遞到日志服務(wù)中->配置日志服務(wù)作為函數(shù)計(jì)算觸發(fā)器并傳遞日志->觸發(fā)函數(shù)

舉個(gè)栗子

開(kāi)通操作審計(jì)服務(wù)后,創(chuàng)建一個(gè)日志跟蹤

如何把創(chuàng)建ECS作為觸發(fā)器來(lái)觸發(fā)函數(shù)計(jì)算

然后創(chuàng)建一個(gè)實(shí)例,可以看到操作審計(jì)記錄了這個(gè)行為

如何把創(chuàng)建ECS作為觸發(fā)器來(lái)觸發(fā)函數(shù)計(jì)算

同時(shí)日志服務(wù)里也找到了這個(gè)行為記錄

如何把創(chuàng)建ECS作為觸發(fā)器來(lái)觸發(fā)函數(shù)計(jì)算

接下來(lái)我們可以配置一個(gè)函數(shù)計(jì)算服務(wù),具體的過(guò)程可以參考文中最后的文檔,這里強(qiáng)調(diào)下配置觸發(fā)器的配置,這里要注意的是圖中有關(guān)logstore的配置,上面的是觸發(fā)日志的logstore,下面的是寫(xiě)日志的lostore,不能搞混。

如何把創(chuàng)建ECS作為觸發(fā)器來(lái)觸發(fā)函數(shù)計(jì)算

然后復(fù)制進(jìn)去一段代碼,這段代碼的核心是拿到觸發(fā)event的具體日志信息,然后寫(xiě)到函數(shù)計(jì)算本地的日志庫(kù)里。

# -*- 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.credentials
  client = logClient(endpoint, creds)
  if client == None :
      logger.info("client creat failed")
      return False
  project = event['projectName']
  logstore = event['logstoreName']
  start_cursor = event['beginCursor']
  end_cursor = event['endCursor']
  loggroup_count = 10
  shard_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 :
          break
      start_cursor = next_cursor
    #log_data =  res.get_loggroup_json_list()
  return True

以上配置完成后,一個(gè)控制臺(tái)創(chuàng)建ECS(當(dāng)然也包括其他可以被審計(jì)的行為)的行為就可以用來(lái)觸發(fā)函數(shù)計(jì)算的函數(shù)了。

結(jié)果

我們把剛才創(chuàng)建的實(shí)例再釋放掉,看到操作審計(jì)的日志

如何把創(chuàng)建ECS作為觸發(fā)器來(lái)觸發(fā)函數(shù)計(jì)算

如何把創(chuàng)建ECS作為觸發(fā)器來(lái)觸發(fā)函數(shù)計(jì)算

然后我們?cè)诤瘮?shù)計(jì)算的日志庫(kù)里也看到了對(duì)應(yīng)的日志,這個(gè)日志是剛才操作審計(jì)記錄的日志傳遞給函數(shù)計(jì)算并記錄的。在真正的應(yīng)用場(chǎng)景下,客戶(hù)可以拿到這個(gè)日志中的相關(guān)信息做更多操作。

如何把創(chuàng)建ECS作為觸發(fā)器來(lái)觸發(fā)函數(shù)計(jì)算

關(guān)于如何把創(chuàng)建ECS作為觸發(fā)器來(lái)觸發(fā)函數(shù)計(jì)算就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,可以學(xué)到更多知識(shí)。如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到。


當(dāng)前名稱(chēng):如何把創(chuàng)建ECS作為觸發(fā)器來(lái)觸發(fā)函數(shù)計(jì)算
文章鏈接:http://weahome.cn/article/pdjjoc.html

其他資訊

在線(xiàn)咨詢(xún)

微信咨詢(xún)

電話(huà)咨詢(xún)

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部