首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我的Lambda在通过中间包装器访问LaunchDarkly时挂起

我的Lambda在通过中间包装器访问LaunchDarkly时挂起
EN

Stack Overflow用户
提问于 2021-11-02 02:10:06
回答 1查看 61关注 0票数 0

我们使用Middy作为所有lambda的包装器来处理一些日志记录和插装逻辑,这很棒。我们还使用LaunchDarkly (启动server node-server-sdk)来无服务器地访问功能标志,遵循基本选项1提出的here。这也是很棒的。

现在,尝试将这些方法组合到一个处理流事件的新lambda函数中,我遇到了一个问题,即lambda被正常调用,但只调用了一次,然后挂起。当它超时时,调用被认为是失败的,事件永远不会从流中删除,从而导致每隔120秒对同一事件进行一次新的调用。需要明确的是,这不是一个装饰品造成的问题,但它似乎,middy本身。

所以这是可行的:

代码语言:javascript
复制
const wrap = f => {
  return f;
  //   ...
};   

  const clientLD = LaunchDarkly.init(process.env.LaunchDarklySDKKey, { logger });

 
  const handler = wrap(async (event,context) => {
  try {
    logger.info(event);

    await clientLD.waitForInitialization();
    const list = await clientLD.variation(
      'tenants-forwarding-to-analytics',
      { key: 'lambda-function-dynamostreamforwarder' },
      [],
    );

    logger.info(list);
  } catch (e) {
    logger.error(e.message, e);
  }
  return null;
});

但这是挂着的:

代码语言:javascript
复制
const wrap = f => {
  return middy(f);
  //   ...
};   

// [same]
EN

回答 1

Stack Overflow用户

发布于 2021-11-02 16:09:25

找到我的答案here

在我的例子中,最不具侵入性的解决方案是简单地添加以下行:

代码语言:javascript
复制
    context.callbackWaitsForEmptyEventLoop = false;

给我的上级。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/69804648

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档