add user
This commit is contained in:
45
api.saladeaula.digital/app/keep_warm.py
Normal file
45
api.saladeaula.digital/app/keep_warm.py
Normal file
@@ -0,0 +1,45 @@
|
||||
from concurrent.futures import ThreadPoolExecutor, as_completed
|
||||
|
||||
import requests
|
||||
from aws_lambda_powertools import Logger, Tracer
|
||||
from aws_lambda_powertools.utilities.data_classes import (
|
||||
EventBridgeEvent,
|
||||
event_source,
|
||||
)
|
||||
from aws_lambda_powertools.utilities.typing import LambdaContext
|
||||
|
||||
logger = Logger(__name__)
|
||||
tracer = Tracer()
|
||||
urls = ['https://bcs7fgb9og.execute-api.sa-east-1.amazonaws.com/health']
|
||||
|
||||
|
||||
@tracer.capture_lambda_handler
|
||||
@event_source(data_class=EventBridgeEvent)
|
||||
def lambda_handler(event: EventBridgeEvent, context: LambdaContext) -> bool:
|
||||
results = []
|
||||
|
||||
with ThreadPoolExecutor(max_workers=5) as executor:
|
||||
futures = [executor.submit(ping, url) for url in urls]
|
||||
|
||||
for future in as_completed(futures):
|
||||
results.append(future.result())
|
||||
|
||||
logger.info(results)
|
||||
|
||||
return True
|
||||
|
||||
|
||||
def ping(url: str):
|
||||
try:
|
||||
r = requests.get(url, timeout=4)
|
||||
r.raise_for_status()
|
||||
except requests.exceptions.RequestException as exc:
|
||||
return {
|
||||
'url': url,
|
||||
'error': str(exc),
|
||||
}
|
||||
else:
|
||||
return {
|
||||
'url': url,
|
||||
'status': r.status_code,
|
||||
}
|
||||
Reference in New Issue
Block a user