Calling AWS Lambda directly

0

Can I call an AWS Lambda function directly without using API GW, for example? I do not get any HTTP endpoint when I create a Lambda function but I get an ARN. Can I use ARN to directly call lambda function programmatically or I always have to go through a GW?

1回答
0
承認された回答

Hi - Yes you can directly call lambda function programmatically. You can invoke Lambda functions directly with the Lambda console, the Lambda API, the AWS SDK, the AWS CLI, and AWS toolkits. You can also configure other AWS services to invoke your function, or you can configure Lambda to read from a stream or queue and invoke your function.

Reference : https://docs.aws.amazon.com/lambda/latest/dg/lambda-invocation.html

On more sample example is https://docs.aws.amazon.com/sdk-for-java/v1/developer-guide/examples-lambda.html . This section provides examples of programming with the Lambda service client by using the AWS SDK for Java

        String functionName = args[0];

    InvokeRequest invokeRequest = new InvokeRequest()
            .withFunctionName(functionName)
            .withPayload("{\n" +
                    " \"Hello \": \"Paris\",\n" +
                    " \"countryCode\": \"FR\"\n" +
                    "}");
    InvokeResult invokeResult = null;

    try {
        AWSLambda awsLambda = AWSLambdaClientBuilder.standard()
                .withCredentials(new ProfileCredentialsProvider())
                .withRegion(Regions.US_WEST_2).build();

        invokeResult = awsLambda.invoke(invokeRequest);

        String ans = new String(invokeResult.getPayload().array(), StandardCharsets.UTF_8);

        //write out the return value
        System.out.println(ans);

    } catch (ServiceException e) {
        System.out.println(e);
    }

    System.out.println(invokeResult.getStatusCode());

Hope this helps

profile pictureAWS
エキスパート
回答済み 3年前

ログインしていません。 ログイン 回答を投稿する。

優れた回答とは、質問に明確に答え、建設的なフィードバックを提供し、質問者の専門分野におけるスキルの向上を促すものです。

質問に答えるためのガイドライン

関連するコンテンツ