Amazon web services 如何在运行时识别Lambda版本的第一次执行?
我只想在Lambda版本的第一次执行时运行一些代码。注意:我不是指冷启动场景,因为这种情况会发生多次 不幸的是,computeInstanceInvocationCount在每次冷启动时都重置为0 functionVersion是一个可用属性,但除非我将其存储在lambda之外的内存中,否则我无法计算它是否确实是第一次执行Amazon web services 如何在运行时识别Lambda版本的第一次执行?,amazon-web-services,aws-lambda,Amazon Web Services,Aws Lambda,我只想在Lambda版本的第一次执行时运行一些代码。注意:我不是指冷启动场景,因为这种情况会发生多次 不幸的是,computeInstanceInvocationCount在每次冷启动时都重置为0 functionVersion是一个可用属性,但除非我将其存储在lambda之外的内存中,否则我无法计算它是否确实是第一次执行 是否可以根据事件或上下文中的运行时值推断出这一点?或者还有其他方法吗?无法知道这是否是Lambda第一次从传入Lambda的任何信息运行 您必须通过在其他位置设置标志或参数来
是否可以根据事件或上下文中的运行时值推断出这一点?或者还有其他方法吗?无法知道这是否是Lambda第一次从传入Lambda的任何信息运行
您必须通过在其他位置设置标志或参数来包含检查功能,但是请记住,可以同时调用Lambda的多个副本,因此任何用于此的数据存储都可能需要是事务性的,以确保它只发生一次。无法知道这是否是Lambda第一次从传入Lambda的任何信息运行
您必须包括通过在此处设置标志或参数来检查其他位置的功能,但请记住,可以同时调用Lambda的多个副本,因此任何用于此目的的数据存储都可能需要是事务性的,以确保它只发生一次。您可以尝试的一种方法是使用 在每次部署时,使用更新参数存储值
{"version":"latest","is_firsttime":true}
因此,在部署后运行下面的命令
aws secretsmanager update-secret --secret-id demo --secret-string '{"version":"latest","is_firsttime":true}'
因此,在部署之前,我们需要确保这一点
现在我们可以在lambda中设置逻辑,在演示中,我们将第一次研究is_
这只是一个在非lambda环境下工作的演示代码,请相应地进行调整
第一次预期响应
{
ARN: 'arn:aws:secretsmanager:us-west-2:12345:secret:demo-0Nlyli',
Name: 'demo',
VersionId: '3ae6623a-1111-4a41-88e5-12345'
}
第二次
init already completed
您可以尝试的一种方法是使用 在每次部署时,使用更新参数存储值
{"version":"latest","is_firsttime":true}
因此,在部署后运行下面的命令
aws secretsmanager update-secret --secret-id demo --secret-string '{"version":"latest","is_firsttime":true}'
因此,在部署之前,我们需要确保这一点
现在我们可以在lambda中设置逻辑,在演示中,我们将第一次研究is_
这只是一个在非lambda环境下工作的演示代码,请相应地进行调整
第一次预期响应
{
ARN: 'arn:aws:secretsmanager:us-west-2:12345:secret:demo-0Nlyli',
Name: 'demo',
VersionId: '3ae6623a-1111-4a41-88e5-12345'
}
第二次
init already completed
在DynamoDB中存储状态,例如使用Lambda函数/版本作为键,并在原子计数器中保留调用计数。在DynamoDB中存储状态,例如使用Lambda函数/版本作为键,并在原子计数器中保留调用计数。谢谢。出于好奇,你知道两次冷启动是否可能同时发生吗?我认为,只有当isColdStart为真时,才放置逻辑,它将删除事务性要求。从技术上讲,如果您有高流量,lambda可能分布在Firecrible Micro VM上。此外,如果您的流量非常小,您会发现函数本身在其整个生命周期中可能有多个冷启动。最后,如果Lambda节点出现故障或AZ出现故障,则将使用另一个microm,从而导致另一个冷启动故障。出于好奇,你知道两次冷启动是否可能同时发生吗?我认为,只有当isColdStart为真时,才放置逻辑,它将删除事务性要求。从技术上讲,如果您有高流量,lambda可能分布在Firecrible Micro VM上。此外,如果您的流量非常小,您会发现函数本身在其整个生命周期中可能有多个冷启动。最后,如果Lambda节点发生故障或AZ发生故障,则将使用另一个microm,从而导致另一个冷启动