An Internal Error Occurred During: Uploading Function Code to Lambda. Javax/xml/bind/jaxbexception

Today along with Microservices, another concept is very pop that is Serverless compages. Serverless refers to the cloud deployment model with elasticity where you deploy your code/services to 3rd party deject providers (e.g. AWS) instead of managing servers and platform manually. Deject provider provides all infrastructure and platform support where you can only host your code with your pick of programming linguistic communication and rest of the things are taken care past the deject infrastructure.

Typically, in serverless architectures, the cost of hosting is likewise based on the time of execution of that function only i.e. compute time, even when your usage scales from a few requests per day to thousands per second. This is actually a great flexibility for the organizations in terms of price, performance and piece of cake maintenance point of view. That is why this arroyo of developing Microservices (rather Nanoservices or FaaS).

Serverless architectures refer to applications that significantly depend on third-party services (knows every bit Backend as a Service or BaaS) or on custom lawmaking that'southward run in ephemeral containers (Function every bit a Service or FaaS), the all-time known vendor host of which currently is AWS Lambda. – (Past Martin Flower)

AWS is marketplace leader in cloud area where they have provided one such platform called "AWS Lambda". In Lambda, nosotros can host functions or code in many diversified language support like Java, Node, .Net, Python etc.

Today we volition hash out how to develop i simple function with Java in eclipse and then we will deploy the office in AWS Lambda platform.

Tabular array of Contents  Prerequisite Develop Lambda Function Deploy Function to AWS Lambda Test Lambda Function From AWS Console Summery        

Prerequisite

  1. AWS account – Before starting this practise, we demand to register ourselves with the AWS complimentary tier business relationship. AWS provides this blazon of admission for 1 year to exercise the practice on different services. It is very directly forwards and to do that you lot need to follow this link https://aws.amazon.com/ and need to click on "Create an AWS Account" button in acme right corner of the domicile folio itself.

    Give required registration details. Information technology will ask for some credit carte du jour, experience free to provide your ain, AWS will not bill unless you have tried the services that does not falls under free tier.

  2. AWS toolkit installed in Eclipse – Demand to follow official AWS documentation on this topic for proceeding with installation and configuration. This is just like another eclipse plug in installation. Once installed we demand to configure the AWS credentials with your own Central Pair downloaded from AWS Panel. The official documentation has clearly mentioned those steps, that is the reason we are skipping those installation function.

Develop Lambda Function

So our environment is ready, nosotros volition now develop the Lambda Function will then deploy in AWS and exam from AWS panel.

  1. Create AWS Lambda Coffee Project

    We demand to beginning create 1 eclipse project to start writing the Lambda function. Here we volition create AWS lambda project with the AWS toolkit. To create the project just right click on Projection explorer and create a new Project and select AWS Lambda Java Project as blazon of project. Enter required details and Lambda project will be created. Here are couple of eclipse screen shot while I created this example project used in this commodity.

    AWS lambda Projection Creation – Step 1
    AWS lambda Project Creation – Footstep 2
    AWS lambda Projection Creation – Pace 3
    AWS lambda Project Creation – Footstep 4
    Eclipse Project Construction
  2. Add together Lambda function Code

    We take now created the lambda project and all the required runtime dependencies has been provided by AWS toolkit and nosotros are set up to go with adding logic to our lambada function.

    Open the LambdaFunctionHandler grade created while creating the project and add together your logic there. Hither in our case the office is taking MyLambdaRequest equally asking and MyLambdaResponse every bit response. Lambda will convert those to JSON while executing and the Object to JSON serialization will take automatically, in the AWS side.

    In this case our logic is very simple, we are just printing the request and populating some greeting bulletin in the response along with couple of other values. The last code volition look like –

    LambdaFunctionHandler.coffee

    package com.example.howtodoinjava;  import java.util.Date; import coffee.util.UUID; import com.amazonaws.services.lambda.runtime.Context; import com.amazonaws.services.lambda.runtime.RequestHandler;  public class LambdaFunctionHandler implements RequestHandler<MyLambdaRequest, MyLambdaResponse> {      @Override     public MyLambdaResponse handleRequest(MyLambdaRequest input, Context context) {         context.getLogger().log("Input: " + input);         MyLambdaResponse lambdaResponse = new MyLambdaResponse();         try { 			lambdaResponse.setResponseMessage("Hello " + input.getName() + " Response Time : " + new Date()); 			lambdaResponse.setTransactionID(UUID.randomUUID().toString()); 		} grab (Exception eastward) { 			east.printStackTrace(); 			lambdaResponse.setResponseMessage(e.getMessage()); 		}         context.getLogger().log("Response : " + lambdaResponse);         render lambdaResponse;     } }            

    MyLambdaRequest.java

    package com.example.howtodoinjava;  public class MyLambdaRequest  { 	String proper noun;  	public String getName() { 		render name; 	}  	public void setName(String name) { 		this.proper noun = proper name; 	}  	@Override 	public String toString() { 		return "MyLambdaRequest [name=" + name + "]"; 	} }            

    MyLambdaResponse.coffee

    package com.case.howtodoinjava;  public class MyLambdaResponse { 	String responseMessage; 	String transactionID;  	public String getResponseMessage() { 		render responseMessage; 	}  	public void setResponseMessage(String responseMessage) { 		this.responseMessage = responseMessage; 	}  	public Cord getTransactionID() { 		return transactionID; 	}  	public void setTransactionID(Cord transactionID) { 		this.transactionID = transactionID; 	}  	@Override 	public String toString() { 		render "MyLambdaResponse [responseMessage=" + responseMessage + " 				, transactionID=" + transactionID + "]"; 	} }            

Deploy Part to AWS Lambda

So we have developed our lambda function. It is very uncomplicated for the demonstration purpose but we can add together whatever complex business logic hither. Nosotros can add code to interact to other AWS services like RDS, SNS, S3, SQS etc.

Now we volition deploy this function through AWS toolkit. Deployment steps are –

  1. Right click on the project
  2. click on Amazon Web Services carte du jour and cull Upload Office to AWS Lambda choice.
  3. Choose required details like AWS region where information technology will be deployed, lambda function name, required memory etc. and click on Finish.

    After this, the Lambda function volition be uploaded and deployed.

Here are the screen shots that I have captured while uploading this example project.

Lambda Role Upload to AWS – Step 1
Lambda Office Upload to AWS – Step 2
Lambda Role Upload to AWS – Step iii
Lambda Office Upload to AWS – Step 4

That's all in the eclipse side, nosotros volition at present login to AWS panel and configure few things and exam uploaded function from AWS panel itself.

Test Lambda Function From AWS Console

Login into the AWS console with your credentials and change the region to what you selected while uploading the project from eclipse. In my case it is Us-W(Oregon)and and then go to Lambda service home page by clicking on the Lambda link from the services menu. Here is the the Services menu for going to Lambda home page.

AWS Services Menu for Going to Lambda Landing page

Here is the Lambda Landing screen where we accept all the Lambda functions that are already available for this AWS region. We tin can filter with the Lambda function name to locate the detail lambda role we want to loo into.

Lambda function Landing page with the newly developed Lambda

Now click on the lambda name and we volition go into the details folio, there nosotros need to configure the examination data for testing the function and after that we will click on the Examination push on this page to invoke the function and come across the result in the screen itself.

Lambda function Details Screen

Now we will configure exam data by clicking on the card Actions --> configure exam event. In that location we need to select template as Howdy World and demand to give corresponding JSON request which can be marshalled to the actual asking blazon (in our case MyLambdaRequest). This screen will look like

Configure Input for invocation

Now once the exam data has been configured we tin click on the Test button and see the response along with logs in the aforementioned page as below.

Examination Result of the Lambda function

Summary

You see that our first Lambda function is up and running in production form infrastructure withing xxx minutes. Isn't it great !! So, today we saw how to create AWS lambda project in eclipse, develop Lambda part, deploy it to certain AWS region and exam the same from AWS console.

Please notation this lambda function can exist triggered by many AWS services to build a complete ecosystem of microservices and nano-services calling each other.

In adjacent topic, nosotros volition acquire how we can invoke Lambda function using API gateway.

Happy Learning!!!

robertsconve2002.blogspot.com

Source: https://howtodoinjava.com/aws/create-deploy-aws-lambda-function/

0 Response to "An Internal Error Occurred During: Uploading Function Code to Lambda. Javax/xml/bind/jaxbexception"

Post a Comment

Iklan Atas Artikel

Iklan Tengah Artikel 1

Iklan Tengah Artikel 2

Iklan Bawah Artikel