java aws-lambda示例的唯一id?

drkbr07n  于 2023-06-20  发布在  Java
关注(0)|答案(2)|浏览(141)

因为lambdas是无状态的,并且可以同时运行多个示例,所以基于时间戳生成id可能不是个好主意。我现在用的是UUIDv1。我知道用相同的时间戳生成相同的ID的机会已经不可能了。它也足够独特,足以满足我的应用。出于好奇,我正在想办法在aws lambda上生成真正数学上唯一的id。
UUID v1使用一个节点来区分使用相同时间戳生成的id。随机数或MAC地址(对于虚拟示例来说是个坏主意)用于创建节点ID。
如果我为我的活动lambda示例有一个唯一的id,我将能够生成真正唯一的id。上下文对象中有一个awsRequestId,但它看起来像是另一个基于时间戳的UUID。
也许你们还有别的想法

zujrkrfu

zujrkrfu1#

AWS lambda:

System.getenv("AWS_LAMBDA_LOG_STREAM_NAME").replaceFirst(".*?(?=\\w+$)", EMPTY)

定义的运行时环境变量

AWS EC2:

httpGet http://169.254.169.254/latest/meta-data/instance-id

Instance metadata and user data

AWS ECS:

httpGet http://localhost:51678/v1/metadata

How to get Task ID from within ECS container?

ht4b089n

ht4b089n2#

子网内唯一

String executableId = ManagementFactory.getRuntimeMXBean().getName();

相关问题