in pipeline/ocr/sfn_semaphore/fn-acquire-lock/main.py [0:0]
def __init__(self, raw_event: dict):
# Required event attrs first:
try:
self.execution_id = raw_event["ExecutionId"]
self.state_entered_time = raw_event["StateEnteredTime"]
except KeyError as kerr:
raise MalformedRequest(f"Input event missing required key '{kerr}'") from kerr
# Params with environment variable defaults:
self.ddb_table_name = raw_event.get("TableName", DEFAULT_DDB_TABLE_NAME)
if not self.ddb_table_name:
raise MalformedRequest(
"Must provide either input key 'TableName' or env var DEFAULT_DDB_TABLE_NAME"
)
self.lock_id_attr = raw_event.get("LockIdAttribute", DEFAULT_LOCK_ID_ATTRIBUTE)
if not self.lock_id_attr:
raise MalformedRequest(
"Must provide either input key 'LockIdAttribute' or env var "
"DEFAULT_LOCK_ID_ATTRIBUTE"
)
self.lock_name = raw_event.get("LockName", DEFAULT_LOCK_NAME)
if not self.lock_name:
raise MalformedRequest(
"Must provide either input key 'LockName' or env var DEFAULT_LOCK_NAME"
)
self.per_item_concurrency = raw_event.get(
"PerItemConcurrency",
DEFAULT_PER_ITEM_CONCURRENCY,
)
if not (self.per_item_concurrency and self.per_item_concurrency > 0):
raise MalformedRequest(
"Input key 'PerItemConcurrency' (or env var DEFAULT_PER_ITEM_CONCURRENCY) must be "
f"an integer greater than 0. Got '{self.per_item_concurrency}"
)
self.concurrency_limit = raw_event.get("ConcurrencyLimit", DEFAULT_CONCURRENCY_LIMIT)
self.warmup_tps_limit = raw_event.get("WarmupTpsLimit", DEFAULT_WARMUP_TPS_LIMIT)