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?

AWS
專家
已提問 3 年前檢視次數 1175 次
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 年前

您尚未登入。 登入 去張貼答案。

一個好的回答可以清楚地回答問題並提供建設性的意見回饋,同時有助於提問者的專業成長。

回答問題指南