Вызвать лямбда-функцию из другой лямбды асинхронно для строки ввода с другими параметрами, используя Java - PullRequest
0 голосов
/ 06 июня 2019

Мне нужно позвонить в лямбду - A из лямбды - B. Я выполнил требуемый код, но мне нужно немного пояснений.

AWSLambda lambdaClient = AWSLambdaClientBuilder.standard().withRegion(region)
.withCredentials(new DefaultAWSCredentialsProviderChain()).build();

InvokeRequest request = new InvokeRequest().withClientContext(clientContext).withFunctionName(functionName)
          .withQualifier(alias).withPayload(payload).withInvocationType(InvocationType.Event);

InvokeResult response = lambdaClient.invoke(request);

У меня есть N имен таблиц, из которых мне нужно передатьЛямбда B - лямбда A, одна за другой, чтобы она могла выполнять необходимую работу с этой таблицей DDB.

Проблема в том, что withPayload принимает полезную нагрузку JSON, которая передается в функцию лямбда.

Я передам полезную нагрузку в lambda-B, но затем код вызывает lambdaClient.invoke(request), который будет иметь все имена таблиц и будет вызывать нашу лямбда-A.Но функция-обработчик в лямбда-A ожидает одно имя таблицы.

Я не уверен, как это сделать.

Также мне нужно запускать это в цикле, чтобы каждый разпринимает новое значение полезной нагрузки и затем вызывает lambdaClient.invoke(request) или это происходит автоматически?

1 Ответ

0 голосов
/ 06 июня 2019

Вы должны создать pyload с одним именем таблицы.В этом случае у вас будет много полезных нагрузок, поэтому вы можете иметь их массив и обрабатывать их в цикле.

Например:

InvokeRequest request = null;
InvokeResult response = null;
for(String payload : payloads){
  request = new InvokeRequest().withClientContext(clientContext).withFunctionName(functionName)
          .withQualifier(alias).withPayload(payload).withInvocationType(InvocationType.Event);
  response = lambdaClient.invoke(request);
}

В каком случае вы получите эту полезную нагрузку?Обычно Lamda запускается на каком-либо событии, и лямбда не может работать более 15 минут (более 15 минут необходимо связаться со службой поддержки AWS).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...