Lambda容器中的CPU分配是使用CPU份额计算的,这取决于您函数的内存分配量。每个函数都分配了一定数量的CPU份额,这些份额可以影响函数完成的速度。
根据AWS官方文档,Lambda会按以下比例分配CPU份额:
128MB 内存:512 CPU份额 192MB 至 1,536MB(每增加64MB,便增加64 CPU份额) 1,792MB 至 3,008MB(每增加128MB,便增加1,024 CPU份额)
以下是一个示例Python代码,用于输出函数的内存大小、CPU份额、以及函数所能使用的CPU时间限制:
import os
def lambda_handler(event, context): memory = os.getenv('AWS_LAMBDA_FUNCTION_MEMORY_SIZE') cpu = int(memory) / 128 time_limit = context.get_remaining_time_in_millis()
print('Memory: {} MB'.format(memory))
print('CPU: {} share'.format(cpu))
print('Time limit: {} ms'.format(time_limit))
当您将内存设置为512MB时,输出将如下所示:
Memory: 512 MB CPU: 4.0 share Time limit: 300000 ms
这意味着,当设置内存为512MB时,函数将获得4个CPU份额。因此,函数可以在3分钟内使用4个CPU份额进行计算。