在azure logic App中如何创建10个整数位唯一id

时间:2018-05-10 09:16:15

标签: azure azure-functions azure-logic-apps

在azure logic App中如何为每个请求创建一个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();
};

如何解决这个问题

2 个答案:

答案 0 :(得分:1)

  1. 正确的方法是使用@Thomas推荐的app.module.ts之类的内容,但听起来它必须与你的后端人员进行单独的对话。
  2. 另一种方法是使用const appRoutes:Routes = [ { path: '', component: LoginComponent }, { path: 'dashboard', component: DashboardComponent } ] 和salting方法定义某种公式,以真正尝试最小化重复的可能性。
  3. 第三种方法,我觉得在你的场景中更合适,就是使用guid,它会给你10位数的唯一整数,它会以秒为单位递增。
  4. 也许,您可以使用#3并将其加上#2来最小化任何重复,以便rand()更有时间限制。

答案 1 :(得分:0)

您仅可以访问逻辑应用程序请求的数字运行标识符,该标识符对于每个请求都是唯一的,并且可用于您的逻辑应用程序请求上下文。这是一个相当长的数字字符串(大于10个数字)。但是,由于它是数字,因此您可以重新编码并缩短它。

可以通过以下方式访问运行标识符: @workflow()['run'] ['name']

例如如果将运行标识符压缩为base 64时的运行标识符为08586676754160363885,则它将为Y29tcHJlc3M =(这是12个字符)

如果需要将其压缩为10个字符,则可以将其压缩为72或更多。