没有并行函数的执行:时间=x
使用4个并行函数执行:时间=x/4
当执行附加有4个并行函数的代码时,总时间不除以4,而是保持不变。你知道吗
我的问题是: Dynamodb支持并行函数表写入吗?你知道吗
def patronfanin_out(event, context):
for i in range(4):
x= list #aqui envio una lista nueva para cada función
response = lambda_client.invoke(
FunctionName="tesis-aws-patrones-dev-workers",
InvocationType='Event',
Payload=json.dumps(x)
)
def workers(event, context):
table = boto3.resource('dynamodb').Table('patron2')
rowsFinal = event['list']
for row in rowsFinal:
table.put_item(Item={
'id': str(uuid.uuid4()),
'serie': row[0],
'rank': row[1],
'discipline': row[2],
'sex': row[3],
'salary': row[4]
})
response = {
"statusCode": 200,
"params" : rowsFinal
}
return response
我希望函数的总执行时间将大大减少,因为我使用4个并行函数。 总执行时间:x 总执行时间:x/4
这似乎不是并行运行的,而是以迭代的方式运行的
编辑
调用https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda.html#Lambda.Client.invoke中所述的是同步的,它等待响应。你知道吗
使用调用异步https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/lambda.html#Lambda.Client.invoke_async,它们将并行运行。你知道吗
编辑2
使用
batch_write_item()
代替table.put_item
https://boto3.amazonaws.com/v1/documentation/api/latest/reference/services/dynamodb.html#DynamoDB.Client.batch_write_item
并按最多25个项目或16MB总计https://docs.aws.amazon.com/amazondynamodb/latest/APIReference/API_BatchWriteItem.html对它们进行分组
相关问题 更多 >
编程相关推荐