91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

如何把創建ECS作為觸發器來觸發函數計算

發布時間:2021-12-16 16:51:47 來源:億速云 閱讀:134 作者:柒染 欄目:云計算

這篇文章給大家介紹如何把創建ECS作為觸發器來觸發函數計算,內容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。

問題描述

函數計算雖然不支持直接集成到ECS的管控事件上,但是函數計算本身是支持日志服務作為觸發器的。即可以配置日志服務中logstore里的增強日志作為觸發器來觸發函數計算服務中的函數,同時可以傳遞project 和 logstore的name以及beginCursor/endCursor 等相關日志信息作為event到函數計算服務,供其做二次處理和加工。

這樣相當于提供了一個思路,即我們可以把創建ECS或者其他相關的操作想辦法作為日志投遞到日志服務中,這樣就可以觸發相關的函數計算服務了。

那么這種方法是什么呢?一種可行的方式是操作審計服務。操作審計可以記錄所有API級別的用戶記錄,當然也包括CreateInstance這類操作。

所以整個流程就變成了:
開通操作審計服務->配置操作審計跟蹤,將event投遞到日志服務中->配置日志服務作為函數計算觸發器并傳遞日志->觸發函數

舉個栗子

開通操作審計服務后,創建一個日志跟蹤

如何把創建ECS作為觸發器來觸發函數計算

然后創建一個實例,可以看到操作審計記錄了這個行為

如何把創建ECS作為觸發器來觸發函數計算

同時日志服務里也找到了這個行為記錄

如何把創建ECS作為觸發器來觸發函數計算

接下來我們可以配置一個函數計算服務,具體的過程可以參考文中最后的文檔,這里強調下配置觸發器的配置,這里要注意的是圖中有關logstore的配置,上面的是觸發日志的logstore,下面的是寫日志的lostore,不能搞混。

如何把創建ECS作為觸發器來觸發函數計算

然后復制進去一段代碼,這段代碼的核心是拿到觸發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.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

以上配置完成后,一個控制臺創建ECS(當然也包括其他可以被審計的行為)的行為就可以用來觸發函數計算的函數了。

結果

我們把剛才創建的實例再釋放掉,看到操作審計的日志

如何把創建ECS作為觸發器來觸發函數計算

如何把創建ECS作為觸發器來觸發函數計算

然后我們在函數計算的日志庫里也看到了對應的日志,這個日志是剛才操作審計記錄的日志傳遞給函數計算并記錄的。在真正的應用場景下,客戶可以拿到這個日志中的相關信息做更多操作。

如何把創建ECS作為觸發器來觸發函數計算

關于如何把創建ECS作為觸發器來觸發函數計算就分享到這里了,希望以上內容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

ecs
AI

怀集县| 周宁县| 璧山县| 吉水县| 尚志市| 阳江市| 滨海县| 凤台县| 阜新市| 金昌市| 太保市| 山东省| 平顺县| 万宁市| 天长市| 邻水| 嘉定区| 金沙县| 霸州市| 松滋市| 富源县| 盖州市| 清新县| 鹿泉市| 太和县| 鲁山县| 澄迈县| 通州区| 福海县| 吴旗县| 新龙县| 凌云县| 铜陵市| 江达县| 石狮市| 上虞市| 淳化县| 商河县| 台湾省| 池州市| 全州县|