【问题标题】:How to create/invoke AWS Lambda functions in Java?如何在 Java 中创建/调用 AWS Lambda 函数?
【发布时间】:2019-07-08 08:59:38
【问题描述】:

我正在实施一个第三方应用程序,以使用 AWS 开发工具包简单地处理 AWS Lambda 的所有功能。我正在使用 JetBrains IntelliJ Idea IDE 进行编码。有人能解释一下如何在 Java 中创建一个 lambda 对象来创建/调用 aws lambda 函数吗?

我提到了documentation,但它没有提供创建 lambda 对象的步骤。

【问题讨论】:

  • 您是否尝试阅读他们的文档:

标签: java amazon-web-services maven intellij-idea aws-lambda


【解决方案1】:

您不必创建 lambda 对象。 Lambda 函数在不使用时被冻结。这就是为什么全局变量不会丢失数据的原因。您只需发送一个调用调用,AWS 将负责其余的工作。

我认为上述信息很高兴知道。现在你可以在这个link中找到一个调用lambda函数的例子

【讨论】:

    【解决方案2】:

    试试这个类。

    import com.amazonaws.ClientConfiguration;
    import com.amazonaws.auth.AWSCredentials;
    import com.amazonaws.auth.BasicAWSCredentials;
    import com.amazonaws.regions.Region;
    import com.amazonaws.regions.Regions;
    import com.amazonaws.services.lambda.AWSLambdaClient;
    import com.amazonaws.services.lambda.model.InvocationType;
    import com.amazonaws.services.lambda.model.InvokeRequest;
    import com.amazonaws.services.lambda.model.InvokeResult;
    
    import java.nio.charset.Charset;
    
    public class AWSLambdaCaller {
    
        private String accessKey;
        private String secretKey;
        private String region;
        private int maxConnections;
        private String functionName;
    
        public AWSLambdaCaller() {
    
        }
    
        /* setter methods */
    
        public void setAccessKey(String pAccessKey) {
            accessKey = pAccessKey;
        }
    
        public void setSecretKey(String pSecretKey) {
            secretKey = pSecretKey;
        }
    
        public void setRegion(String pRegion) {
            region = pRegion;
        }
    
        public void setMaxConnections(int pMaxConnections) {
            maxConnections = pMaxConnections;
        }
    
        public void setFunctionName(String pFunctionName) {
            functionName = pFunctionName;
        }
    
        /* getter methods */
    
        public String getAccessKey () {
            return accessKey;
        }
    
        public String getSecretKey () {
            return secretKey;
        }
    
        public String getRegion () {
            return region;
        }
    
        public int getMaxConnections() {
            return maxConnections;
        }
    
        public String getFunctionName () {
            return functionName;
        }
    
        public String call() {
    
            AWSCredentials awsCredentials = new BasicAWSCredentials(accessKey, secretKey);
    
            ClientConfiguration clientConfiguration = new ClientConfiguration();
    
            clientConfiguration.setMaxConnections(maxConnections);
    
            AWSLambdaClient awsLambdaClient = new AWSLambdaClient(awsCredentials, clientConfiguration);
    
            awsLambdaClient.setRegion(Region.getRegion(Regions.fromName(region)));
    
            InvokeRequest invokeRequest = new InvokeRequest();
    
            invokeRequest.setFunctionName(functionName);
    
            invokeRequest.setInvocationType(InvocationType.RequestResponse);
    
            // invokeRequest.setPayload(jsonBody.toString());
    
            InvokeResult invokeResult = awsLambdaClient.invoke(invokeRequest);
    
            String str = new String(invokeResult.getPayload().array(), Charset.forName("UTF-8"));
    
            return str;
    
        }
    }
    

    main() 会是这样的。

        AWSLambdaCaller awsLambdaCaller = new AWSLambdaCaller();
        awsLambdaCaller.setAccessKey("Your access key");
        awsLambdaCaller.setSecretKey("Your secret key");
        awsLambdaCaller.setRegion("region");
        awsLambdaCaller.setMaxConnections(1100);
        awsLambdaCaller.setFunctionName("Your function name");
    
        System.out.println("Calling AWS Lambda function...");
        System.out.println("AWS>> " + awsLambdaCaller.call());
    

    请注意,上述代码仅支持不带参数的 lambda 函数。要传递参数,请编辑 invokeRequest。

    【讨论】:

      猜你喜欢
      • 2021-12-17
      • 1970-01-01
      • 2019-05-18
      • 1970-01-01
      • 2016-03-25
      • 2019-01-03
      • 2021-07-25
      • 1970-01-01
      • 2021-03-20
      相关资源
      最近更新 更多