這篇文章給大家介紹如何把創(chuàng)建ECS作為觸發(fā)器來觸發(fā)函數(shù)計算,內(nèi)容非常詳細,感興趣的小伙伴們可以參考借鑒,希望對大家能有所幫助。
創(chuàng)新互聯(lián)專業(yè)提供內(nèi)蒙古服務器托管服務,為用戶提供五星數(shù)據(jù)中心、電信、雙線接入解決方案,用戶可自行在線購買內(nèi)蒙古服務器托管服務,并享受7*24小時金牌售后服務。
函數(shù)計算雖然不支持直接集成到ECS的管控事件上,但是函數(shù)計算本身是支持日志服務作為觸發(fā)器的。即可以配置日志服務中l(wèi)ogstore里的增強日志作為觸發(fā)器來觸發(fā)函數(shù)計算服務中的函數(shù),同時可以傳遞project 和 logstore的name以及beginCursor/endCursor 等相關日志信息作為event到函數(shù)計算服務,供其做二次處理和加工。
這樣相當于提供了一個思路,即我們可以把創(chuàng)建ECS或者其他相關的操作想辦法作為日志投遞到日志服務中,這樣就可以觸發(fā)相關的函數(shù)計算服務了。
那么這種方法是什么呢?一種可行的方式是操作審計服務。操作審計可以記錄所有API級別的用戶記錄,當然也包括CreateInstance這類操作。
所以整個流程就變成了:
開通操作審計服務->配置操作審計跟蹤,將event投遞到日志服務中->配置日志服務作為函數(shù)計算觸發(fā)器并傳遞日志->觸發(fā)函數(shù)
開通操作審計服務后,創(chuàng)建一個日志跟蹤
然后創(chuàng)建一個實例,可以看到操作審計記錄了這個行為
同時日志服務里也找到了這個行為記錄
接下來我們可以配置一個函數(shù)計算服務,具體的過程可以參考文中最后的文檔,這里強調(diào)下配置觸發(fā)器的配置,這里要注意的是圖中有關logstore的配置,上面的是觸發(fā)日志的logstore,下面的是寫日志的lostore,不能搞混。
然后復制進去一段代碼,這段代碼的核心是拿到觸發(fā)event的具體日志信息,然后寫到函數(shù)計算本地的日志庫里。
# -*- 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
以上配置完成后,一個控制臺創(chuàng)建ECS(當然也包括其他可以被審計的行為)的行為就可以用來觸發(fā)函數(shù)計算的函數(shù)了。
我們把剛才創(chuàng)建的實例再釋放掉,看到操作審計的日志
然后我們在函數(shù)計算的日志庫里也看到了對應的日志,這個日志是剛才操作審計記錄的日志傳遞給函數(shù)計算并記錄的。在真正的應用場景下,客戶可以拿到這個日志中的相關信息做更多操作。
關于如何把創(chuàng)建ECS作為觸發(fā)器來觸發(fā)函數(shù)計算就分享到這里了,希望以上內(nèi)容可以對大家有一定的幫助,可以學到更多知識。如果覺得文章不錯,可以把它分享出去讓更多的人看到。
當前題目:如何把創(chuàng)建ECS作為觸發(fā)器來觸發(fā)函數(shù)計算
文章出自:http://muchs.cn/article2/pdjjoc.html
成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設、網(wǎng)站收錄、外貿(mào)網(wǎng)站建設、建站公司、微信小程序、標簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)