Как вызвать лямбда-функцию aws из другой лямбда-aws в Java? - PullRequest
2 голосов
/ 29 октября 2019

У меня есть код в Java, который возвращает целочисленное значение. например:

public class Hello {

    public int myHandler(Object name, Context context) {

        int count = 5;
        return count;
    }
}

Я загрузил этот код в AWS с именем обработчика в качестве примера. Hello :: myHandler и имя функции как AWSLAMBDA в регионе us-east-2.

Теперь я хочу написать другой код на Java, который вызывает выходное значение (количество) предыдущего кода. Обратите внимание, что count является целым числом. Так как я новичок как в Java, так и в AWS. Пожалуйста, помогите мне с этим и, если возможно, предоставьте простое объяснение.

Ответы [ 2 ]

1 голос
/ 29 октября 2019
  • Это пример фрагмента кода aws sdk
  • Чтобы вызвать функцию асинхронно, установите InvocationType на Event
  • Чтобы вызвать функцию синхронно,установите InvocationType на RequestResponse (это значение по умолчанию).
  • Вызывающая лямбда-функция должна иметь роль с прикрепленной политикой, имеющей действие lambda:InvokeFunction.
import com.amazonaws.regions.Regions;
import com.amazonaws.services.lambda.AWSLambda;
import com.amazonaws.services.lambda.AWSLambdaClientBuilder;
import com.amazonaws.services.lambda.model.InvokeRequest;
import com.amazonaws.services.lambda.model.InvokeResult;

AWSLambda client = AWSLambdaClientBuilder.standard().build();
InvokeRequest request = new InvokeRequest().withFunctionName("MyFunction").withInvocationType("RequestResponse").withLogType("Tail").withClientContext("MyApp")
        .withPayload(ByteBuffer.wrap("fileb://file-path/input.json".getBytes())).withQualifier("1");
InvokeResult response = client.invoke(request);
0 голосов
/ 30 октября 2019

Помимо Java-кода вам также необходимо убедиться, что политика, связанная с вашей функцией Lambda, действительно может вызывать вторую функцию Lambda. В противном случае фрагмент кода Java потерпит неудачу, так как вызывающая лямбда пропускает разрешение вызывать другие функции

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