context.awsRequestId 来自 lambda
context.awsRequestId from lambda
来自context.awsRequestId
的uuid真的是独一无二的吗?我想在创建资源时使用它,所以我现在可以在创建资源时使用它:
const uuid = require('uuid');
const AWS = require('aws-sdk');
const dynamoDb = new AWS.DynamoDB.DocumentClient();
module.exports.create = (event, context, callback) => {
const timestamp = new Date().getTime();
const data = JSON.parse(event.body);
if (typeof data.text !== 'string') {
console.error('Validation Failed');
callback(null, {
statusCode: 400,
headers: { 'Content-Type': 'text/plain' },
body: 'Couldn\'t create the todo item.',
});
return;
}
const params = {
TableName: process.env.DYNAMODB_TABLE,
Item: {
id: context.awsRequestId,
text: data.text,
checked: false,
createdAt: timestamp,
updatedAt: timestamp,
},
};
// write the todo to the database
dynamoDb.put(params, (error) => {
// handle potential errors
if (error) {
console.error(error);
callback(null, {
statusCode: error.statusCode || 501,
headers: { 'Content-Type': 'text/plain' },
body: 'Couldn\'t create the todo item.',
});
return;
}
// create a response
const response = {
statusCode: 200,
body: JSON.stringify(params.Item),
};
callback(null, response);
});
};
谢谢。
我认为这没有明确的记录,但根据观察,这些 UUID 似乎不是随机生成的(这有利于唯一性)。相反,它们看起来像是 Type 1 UUIDs 的变体,其中大部分字节实际上表示时间戳,因此可以安全地假设它们在空间和时间上都是唯一的。
当 xxxxxxxx-xxxx-Mxxx-xxxx-xxxxxxxxxxxx
中的数字 M
设置为 1 时,UUID 应该是 Type 1 并且应该表示高分辨率时间戳和 "node" 标识符,尽管在这种情况下节点组件似乎没有携带任何有意义的信息...但时间戳似乎接近实时(尽管并非如此)。
来自context.awsRequestId
的uuid真的是独一无二的吗?我想在创建资源时使用它,所以我现在可以在创建资源时使用它:
const uuid = require('uuid');
const AWS = require('aws-sdk');
const dynamoDb = new AWS.DynamoDB.DocumentClient();
module.exports.create = (event, context, callback) => {
const timestamp = new Date().getTime();
const data = JSON.parse(event.body);
if (typeof data.text !== 'string') {
console.error('Validation Failed');
callback(null, {
statusCode: 400,
headers: { 'Content-Type': 'text/plain' },
body: 'Couldn\'t create the todo item.',
});
return;
}
const params = {
TableName: process.env.DYNAMODB_TABLE,
Item: {
id: context.awsRequestId,
text: data.text,
checked: false,
createdAt: timestamp,
updatedAt: timestamp,
},
};
// write the todo to the database
dynamoDb.put(params, (error) => {
// handle potential errors
if (error) {
console.error(error);
callback(null, {
statusCode: error.statusCode || 501,
headers: { 'Content-Type': 'text/plain' },
body: 'Couldn\'t create the todo item.',
});
return;
}
// create a response
const response = {
statusCode: 200,
body: JSON.stringify(params.Item),
};
callback(null, response);
});
};
谢谢。
我认为这没有明确的记录,但根据观察,这些 UUID 似乎不是随机生成的(这有利于唯一性)。相反,它们看起来像是 Type 1 UUIDs 的变体,其中大部分字节实际上表示时间戳,因此可以安全地假设它们在空间和时间上都是唯一的。
当 xxxxxxxx-xxxx-Mxxx-xxxx-xxxxxxxxxxxx
中的数字 M
设置为 1 时,UUID 应该是 Type 1 并且应该表示高分辨率时间戳和 "node" 标识符,尽管在这种情况下节点组件似乎没有携带任何有意义的信息...但时间戳似乎接近实时(尽管并非如此)。