import boto3def wait_for_lambda_activation(function_name): """Waits for the Lambda function to become active.""" waiter = lambda_client.get_waiter('function_active_v2') try: waiter.wait( FunctionName=function_name, WaiterConfig={ 'Delay': 10, # Seconds to wait between each poll 'MaxAttempts': 12 # Maximum number of polling attempts } ) except WaiterError as e: print(f"Waiter failed: {e}") raisedef invoke_lambda(function_name, payload): """Invokes the Lambda function, retries if it's not active.""" try: # Attempt to invoke the Lambda function return invoke_lambda_once(function_name, payload) except ClientError as e: print(f"Invocation failed, waiting for activation: {e}") # Wait for activation and retry wait_for_lambda_activation(function_name) return invoke_lambda_once(function_name, payload)