Я python нуб, ищу советы по передовому опыту и решение этой проблемы. Я могу успешно извлечь необходимые данные из API Okta, что приводит к выводу "PRECONDITION FAILED. Ошибки, сообщенные удаленным сервером: не удалось обновить. Ресурс изменен на сервере." это только половина того, что я хочу. Я хотел бы иметь возможность проверять этот вывод каждые 60 минут, и если он не существует, ничего не делать. Я думал, что это то, что я делал в коде ниже в функции «start», но, похоже, он не ведет себя так, как я хочу. Как сохранить json объекты в переменных событиях или выйти из приложения, если объект не отображается? Заранее спасибо!
import requests
import os
import json
import time
from datetime import datetime, timedelta
key = os.environ['OKTA_AUTH']
outcome = 'outcome.result eq "FAILURE"'
event_type = 'eventType eq "application.provision.user.deactivate"'
app_id = 'target.id eq "*******"'
all_params = f'{event_type} and {app_id} and {outcome}'
api_url = f'https://domain.okta.com/api/v1/logs'
last_hour_date_time = datetime.utcnow() - timedelta(minutes=60)
since = str(last_hour_date_time.strftime('%Y-%m-%dT%H:%M:%S.000Z'))
def auth_okta():
url = api_url.format()
print(url)
params = {
'filter': all_params,
'since': since
}
response = requests.get(url, params=params,
headers={'Accept': 'application/json',
'authorization': key})
response_json = response.json()
return response_json
def start():
for event_data in auth_okta():
events = event_data['outcome']['reason']
if not events:
print('nothing there')
else:
print(events)
start()