aws-lambda 实例的唯一 ID?

jWa*_*ng1 5 java uuid aws-lambda

由于 lambda 是无状态的并且多个实例可以同时运行,因此基于时间戳生成 id 可能不是一个好主意。我目前使用的是 UUIDv1。我知道生成具有相同时间戳的相同 ID 的机会实际上是不可能的。对于我的应用程序来说,它也足够独特。出于好奇,我正在考虑如何在 aws lambda 上生成真正数学上唯一的 id。

UUID v1 使用节点来区分使用相同时间戳生成的 id。随机数或 MAC 地址(对于虚拟实例来说是个坏主意)用于创建节点 ID。

如果我的活动 lambda 实例有一个唯一的 id,我将能够生成真正唯一的 id。上下文对象中有一个 awsRequestId 但它看起来像是另一个基于时间戳的 UUID。

也许你们有更多的想法?

Myk*_*ych 1

AWS 拉姆达:

System.getenv("AWS_LAMBDA_LOG_STREAM_NAME").replaceFirst(".*?(?=\\w+$)", EMPTY)
Run Code Online (Sandbox Code Playgroud)

定义运行时环境变量

AWS EC2:

httpGet http://169.254.169.254/latest/meta-data/instance-id
Run Code Online (Sandbox Code Playgroud)

实例元数据和用户数据

AWS 弹性云服务器:

httpGet http://localhost:51678/v1/metadata
Run Code Online (Sandbox Code Playgroud)

如何从ECS容器内获取任务ID?