Как использовать Python через AWS Lambda для отправки миллионов (больших объемов данных) событий в SplunkPython

Программы на Python
Ответить
Anonymous
 Как использовать Python через AWS Lambda для отправки миллионов (больших объемов данных) событий в Splunk

Сообщение Anonymous »

Я тестирую скрипт Python, который извлекает данные из API и отправляет их в Splunk. Скрипт работает нормально, но моя проблема в том, что мне нужно будет ежедневно отправлять миллионы событий из API в Splunk. В ходе моего локального тестирования я могу отправлять только несколько тысяч событий в час. В конечном итоге мне придется портировать это в Lambda для запланированной автоматизации.
Я знаю о многопроцессорном модуле Python, но меня беспокоит то, что даже если я запущу эту логику и заработаю, в лучшем случае я смогу отправлять десятки тысяч событий в час, и Lambda истечет еще до того, как я буду близок к отправке полного набора данных. Я надеюсь, что кто-нибудь уже сталкивался с этой проблемой и может предложить мне несколько вариантов для рассмотрения. Спасибо!
Код:

Код: Выделить всё

splunk_conf = {}
for r in range(0,9000000,10000):
offset = str(r)
r = requests.get(f'{base_url}/?limit=10000&offset={offset}',   headers = headers).json()
for x in r['data']:
splunk_payload = x
splunk(splunk_payload, splunk_conf)

def splunk(splunk_payload, splunk_conf):
splunk = SplunkSender(**splunk_conf)
payloads = [splunk_payload]
splunk_res = splunk.send_data(payloads)
Я написал свой сценарий, и он заработал, но именно объем данных будет ограничивающим фактором в моем нынешнем понимании доступных решений.
Обновление
Мне удалось заставить это работать, взяв элементы из словаря и добавив их в список, чтобы передать его в качестве полезной нагрузки Splunk. Мой исходный код отправлял события по одному из-за моего непонимания того, как правильно передавать данные.

Код: Выделить всё

splunk_token = 

for r in range(0,10000000,10000):
offset = str(r)
splunk_payload = []
try:
r = requests.get(f'{base_url}limit=10000&offset={offset}', headers = headers).json()
for event in r['data']:
splunk_payload.append(event)
splunk(splunk_payload, splunk_token)
except Exception as ex:
print("No more results from API!")
exit()

def splunk(splunk_payload, splunk_token):
splunk_conf = {  }
splunk = SplunkSender(**splunk_conf)
splunk_res = splunk.send_data(splunk_payload)
logging.info(splunk_res)



Подробнее здесь: https://stackoverflow.com/questions/768 ... of-data-of
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Python»