java.lang.Object
io.micronaut.starter.feature.function.awslambda.AwsLambda
All Implemented Interfaces:
io.micronaut.core.naming.Described, io.micronaut.core.naming.Named, io.micronaut.core.order.Ordered, DefaultFeature, Feature, AwsCloudFeature, AwsMicronautRuntimeFeature, CloudFeature, FunctionFeature, MicronautRuntimeFeature

@Requires(property="micronaut.starter.feature.aws.lambda.enabled", value="true", defaultValue="true") @Singleton public class AwsLambda extends Object implements FunctionFeature, DefaultFeature, AwsCloudFeature, AwsMicronautRuntimeFeature
Provides support for AWS Lambda functions in Micronaut applications.

This feature configures necessary dependencies, handler classes, and integration with AWS Lambda runtime and tools such as GraalVM native image support, custom runtimes, SnapStart optimization, and HTTP client setup.

It selectively adds features based on the application type, build tools, and presence of other features like GraalVM and HTTP client.

  • Field Details

  • Constructor Details

  • Method Details

    • processSelectedFeatures

      public void processSelectedFeatures(FeatureContext featureContext)
      Description copied from interface: Feature
      If this method is called for a given feature then that feature was explicitly selected or was included by default as a result of DefaultFeature.shouldApply(io.micronaut.starter.options.Options, java.util.Set). This method can be implemented to allow features to modify the list of features that will apply to the project. The methods FeatureContext.addFeature(Feature) and FeatureContext.exclude(FeaturePredicate) are the primary ways to add and remove features from the context. FeatureContext.isPresent(Class) can be used to determine the existence of other features in order to make decisions.
      Specified by:
      processSelectedFeatures in interface Feature
      Parameters:
      featureContext - The feature context
    • shouldAddSnapstartFeature

      protected boolean shouldAddSnapstartFeature(FeatureContext featureContext)
      Determines if the SnapStart feature should be added based on the current feature context. Subclasses may override to change the default behavior.
      Parameters:
      featureContext - The feature context to evaluate.
      Returns:
      true if SnapStart should be added; false otherwise.
    • getName

      @NonNull public @NonNull String getName()
      Description copied from interface: Feature
      The name of the feature. It must be unique.
      Specified by:
      getName in interface Feature
      Specified by:
      getName in interface io.micronaut.core.naming.Named
      Returns:
      the name of the feature
    • getTitle

      public String getTitle()
      Specified by:
      getTitle in interface Feature
      Returns:
      The title of the feature
    • getDescription

      @NonNull public @NonNull String getDescription()
      Specified by:
      getDescription in interface io.micronaut.core.naming.Described
      Specified by:
      getDescription in interface Feature
    • apply

      public void apply(GeneratorContext generatorContext)
      Description copied from interface: Feature
      If this method is called for a given feature that means the feature was explicitly selected, included by default as a result of DefaultFeature.shouldApply(io.micronaut.starter.options.Options, java.util.Set), or added explicitly by another feature through FeatureContext.addFeature(Feature). At this point the feature list is set and cannot change.
      Specified by:
      apply in interface Feature
      Parameters:
      generatorContext - THe generator context
    • addCode

      protected void addCode(@NonNull @NonNull GeneratorContext generatorContext, ModuleContext module)
      Adds generated source code files (e.g. controller or handler) to the module based on application type. Subclasses may override to customize generated code.
      Parameters:
      generatorContext - The generator context.
      module - The module context where code will be added.
    • addHelpTemplate

      protected void addHelpTemplate(@NonNull @NonNull GeneratorContext generatorContext, ModuleContext module)
      Adds the help template (e.g. README) to the module if applicable. Subclasses may override to customize documentation generation.
      Parameters:
      generatorContext - The generator context.
      module - The module context to which the help template is added.
    • readmeTemplate

      @NonNull public @NonNull Optional<com.fizzed.rocker.RockerModel> readmeTemplate(@NonNull @NonNull GeneratorContext generatorContext)
      Provides the README template for this feature, if available. Subclasses may override to provide different documentation.
      Parameters:
      generatorContext - The generator context.
      Returns:
      An Optional containing the RockerModel for the README template, if present.
    • disableSecurityFilterInTestConfiguration

      protected void disableSecurityFilterInTestConfiguration(@NonNull @NonNull GeneratorContext generatorContext, ModuleContext module)
      Disables the security filter in test configuration if security is enabled. Subclasses may override to alter test environment configuration.
      Parameters:
      generatorContext - the generator context
      module - the module context
    • shouldApply

      public boolean shouldApply(Options options, Set<Feature> selectedFeatures)
      Description copied from interface: DefaultFeature
      Determines if the feature should be applied to the project. Default features do not need to be concerned if the feature was already selected and therefore is already in the list of selected features. The addition to the set is based on the identity of the feature instance and all features are singletons.
      Specified by:
      shouldApply in interface DefaultFeature
      Parameters:
      options - The options
      selectedFeatures - The features manually selected by the user
      Returns:
      True if the feature should apply
    • getCategory

      public String getCategory()
      Specified by:
      getCategory in interface Feature
      Specified by:
      getCategory in interface FunctionFeature
      Returns:
      The Category to which the feature belongs to.
    • getFrameworkDocumentation

      public String getFrameworkDocumentation(GeneratorContext generatorContext)
      Specified by:
      getFrameworkDocumentation in interface Feature
      Parameters:
      generatorContext - Generator Context
      Returns:
      Returns a link to Framework documentation about the feature. eg. https://micronaut-projects.github.io/micronaut-cache/latest/guide/index.html#hazelcast