如何将事件发送到 AWS Lambda 函数的所有正在运行的实例

Gui*_*dam 1 events broadcast amazon-web-services aws-lambda

我有一个 Lambda 函数,其配置位于外部源(例如 S3)中。

为了节省一些计算时间,该函数在第一次执行时加载配置并将其保存在内存中。

我希望能够告诉此 Lambda 函数的所有正在运行的实例按需重新加载配置。

在下面的代码片段中,当事件具有“reload”属性时,Lambda 函数会重新加载配置。但显然只有一个正在运行的实例获得该事件。

  • 如何将事件发送到所有正在运行的实例?
  • 有没有办法广播事件?
  • 还有其他方法可以解决这个问题吗?
// Function to process events
var processEvent = function(event,callback) {
  // process event
}

// Function to update configuration
var config; // global object representing configuration
var updateConfiguration = function(callback) {
  // ... load asynchronously from S3
}

// Handle events
exports.handler = function(event, context, callback) {
  if (event.reload) {
    updateConfiguration(callback);   // load configuration
  } else if (!config) {
    updateConfiguration(function() { // load configuration
      processEvent(event,callback);  // ... then process event
    });
  } else {
    processEvent(event,callback);    // process event directly
  }
}
Run Code Online (Sandbox Code Playgroud)

Joh*_*ein 5

无法消息发送到 AWS Lambda 容器。当它们不运行时,它们实际上被“冻结”,不会发生任何计算。

最接近的选择是让处理程序在调用函数时检查某个地方(参数存储?),以查看是否应该重新加载。