在 Azure 逻辑应用中,如何为每个请求创建 10 位唯一 ID。目前,我正在使用函数Javascript,但它正在创建重复项。
JAVAscript funaction 是:
a=1000000000;
module.exports = function (context, req) {
context.log('JavaScript HTTP trigger function processed a request.');
a=a+1;
if (true) {
context.res = {
// status: 200, /* Defaults to 200 */
body: a
};
}
else {
context.res = {
status: 400,
body: "Please pass a name on the query string or in the request body"
};
}
context.done();
};
如何解决这个问题
- 正确的方法是按照@Thomas的建议使用类似
guid
的东西,但听起来它必须与后端人员进行单独的对话。 - 另一种方法是使用
rand()
和腌制方法定义某种公式,以真正尝试最大程度地减少重复的机会。 - 第三种方法,我认为更适合您的方案,是使用
unix timestamp
,它将为您提供 10 位唯一整数,该整数将以秒为单位递增。
也许,您可以使用 #3 并将其与 #2 加盐以最大程度地减少任何重复,以便uniqueness
更具时间限制。
只需访问逻辑应用请求的数字运行标识符,该标识符无论如何对每个请求都是唯一的,并且可用于逻辑应用请求上下文。它是一个相当长的数字字符串(超过 10 位数字(。但是,由于它是数字,因此您可以重新编码并缩短它。
运行标识符通过以下方式访问:@workflow((['run']['name']
例如,如果运行标识符在压缩为 base 64 时08586676754160363885,则为 Y29tcHJlc3M=(这是 12 个字符(
如果您需要将其压缩为 10 个字符,您可以将其压缩为 72 基数或更多。