Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

The AWSJava extension is responsible of creating objects describing Amazon Web Service (AWS) lambda functions but only in the context of java technology. (Similarly the NodeJS extension is responsible of AWS lambda Functions created for the nodejs runtime). To run fully, this extension needs to add requires a Universal Analysis Unit and to switch on with the HTML5 language switched on. This allows analyzing serverless configuration (YAML) files used to define the lambda  functions. This is particularly necessary for the creation of operation-type objects like Java AWS Lambda GET Operation and the Java AWS Lambda Function object. the .json or .yml configuration files (which are used by deployment frameworks to build aws applications). The supported deployment frameworks are Serverless Framework, CloudFormation, and Serverless Application Model (SAM).

The complementary analysis responsible of creating Java Call to AWS Lambda Function objects is based on the analysis of java files and it will be launched without any further requirement upon installation of the com.castsoftware.awsjava plugin.

Warning

The resolution of handler methods in present version of the analyzer relies on the interpretation of serverless configuration files. If these files are missing (or a different framework is used) no server-side objects are expected to be createdOnly Serverless Framework, CloudFormation, and Serverless Application Model (SAM) deployment frameworks are supported.

Lambda functions

Anchor
Serverless
Serverless
Serverless framework

...

Similar results are expected for the predefined interface com.amazonaws.services.lambda.runtime.RequestStreamHandler.

CloudFormation templates

Currently we only support configurations in YAML files. The analyzer will create objects in the same line as those above described for the serverless framework. The same restriction applies: only those Lambda Functions using a Java Runtime (e.g. java8) and their possibly defined Lambda Operations are created by this extension.

In the (simplified) example below, we would have a Java AWS Lambda Function and a Java AWS Lambda GET Operation created, the latter with the URL name "/mypath/{}" (the special notation "+" added to the parameter is substituted by an empty bracket).

...

The lambda can be triggered by several kind kinds of events. The following event types are supported. 

...

  • A single inheritance depth level is only supported for classes implementing predefined interfaces such as RequestHandler andRequestStreamHandler when searching for handler methods. However overriding/overloading of the handler methods is not fully supported.
  • No custom lambda function resolver is supported, i.e. that passed to lambdaFunctionNameResolver (connected to the building of LambdaInvokerFactory).Only YAML cloudFormation files are analyzed. JSON files will be supported in future releases.