Короче говоря, вы не можете использовать лямбда-клиент boto3 в вашем примере. Однако вы можете отслеживать ваши журналы CloudWatch.
1) Разместите частичные результаты, которые вы хотели бы видеть, в регистраторе внутри вашей лямбда-функции.
import logging
logger = logging.getLogger()
logger.setLevel(logging.INFO)
def my_logging_handler(event, context):
results = "something half done"
logger.info('MY PARTIAL RESULTS'.format(results))
logger.error('something went wrong')
return 'Hello from Lambda!'
2) Запустите свою лямбду асинхронно
response = client.invoke(
FunctionName='string',
InvocationType='Event' # To invoke asynchronously InvocationType must be Event,
LogType='None'|'Tail',
ClientContext='string',
Payload=b'bytes'|file,
Qualifier='string'
)
3) Создайте цикл, который вызывает GetLogEvents в течение указанного промежутка времени для потока журнала, связанного с вашей лямбдой.
Request Syntax:
{
"endTime": number,
"limit": number,
"logGroupName": "string",
"logStreamName": "string",
"nextToken": "string",
"startFromHead": boolean,
"startTime": number
}
4) Извлечь частичные результаты из ответа потока журнала
Response Syntax:
{
"events": [
{
"ingestionTime": number,
"message": "string", # The partial response you posted will be seen here
"timestamp": number
}
],
"nextBackwardToken": "string",
"nextForwardToken": "string"
}