मैंने सरल लैम्ब्डा फ़ंक्शन और upload एडब्ल्यूएस लैम्ब्डा को बनाया है।एडब्ल्यूएस लैम्ब्डा: सरल जावा क्लास से लैम्ब्डा फ़ंक्शन को कैसे कॉल करें
import com.amazonaws.services.lambda.runtime.Context;
import com.amazonaws.services.lambda.runtime.RequestHandler;
public class Hello implements RequestHandler<String, String> {
@Override
public String handleRequest(String input, Context context) {
String output = "Bonjour, " + input + "!";
return output;
}
}
}
मैं जावा क्लास का उपयोग करके किसी अन्य परियोजना से इस लैम्ब्डा फ़ंक्शन को आमंत्रित करना चाहता हूं। मैं फ़ंक्शन को कॉल करने के लिए aws-java-sdk-lambda-1.10.22
का उपयोग कर रहा हूं। लेकिन मैं उसमें सफल नहीं हूं।
यहां मेरा InvokeLambda क्लास है जो एक अलग परियोजना है।
import java.nio.ByteBuffer;
import java.nio.charset.Charset;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
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.InvokeRequest;
public class InvokeLambda {
private static final Log logger = LogFactory.getLog(InvokeLambda.class);
private static final String awsAccessKeyId = "XXXXXX";
private static final String awsSecretAccessKey = "YYYY";
private static final String regionName = "us-west-2";
private static final String functionName = "Hello";
private static Region region;
private static AWSCredentials credentials;
private static AWSLambdaClient lambdaClient;
/**
* The entry point into the AWS lambda function.
*/
public static void main(String... args) {
credentials = new BasicAWSCredentials(awsAccessKeyId,
awsSecretAccessKey);
lambdaClient = (credentials == null) ? new AWSLambdaClient()
: new AWSLambdaClient(credentials);
//lambdaClient.configureRegion(Regions.US_WEST_2);
region = Region.getRegion(Regions.fromName(regionName));
lambdaClient.setRegion(region);
try {
InvokeRequest invokeRequest = new InvokeRequest();
invokeRequest.setFunctionName(functionName);
invokeRequest.setPayload("\" AWS Lambda\"");
System.out.println(byteBufferToString(
lambdaClient.invoke(invokeRequest).getPayload(),
Charset.forName("UTF-8")));
} catch (Exception e) {
logger.error(e.getMessage());
// System.out.println(e.getMessage());
}
}
public static String byteBufferToString(ByteBuffer buffer, Charset charset) {
byte[] bytes;
if (buffer.hasArray()) {
bytes = buffer.array();
} else {
bytes = new byte[buffer.remaining()];
buffer.get(bytes);
}
return new String(bytes, charset);
}
}
जावा का उपयोग करके लैम्ब्डा फ़ंक्शन को कैसे कॉल करें?
आपको वास्तव में क्या समस्या है? क्या आपने InvokeLambda प्रोग्राम चलाने का प्रयास किया है? यह मेरे लिए सही लग रहा है। –
@ जो टेलर: हाँ मैंने कक्षा चलाने की कोशिश की। {, "ERRORTYPE" "errorMessage": "com.aws.HelloLambda क्लास नहीं मिला": "वर्ग java.lang.ClassNotFoundException"} मैं हो रही है त्रुटि – Unknown