Skip to main content

☁️ Cloud Provider Generator Overview

Cloudhopper supports serverless deployment to multiple cloud providers through provider-specific generator modules. These generators produce:

  • Java adapter classes to bridge Cloudhopper with cloud-native function interfaces
  • Terraform configuration for provisioning infrastructure
  • Supporting metadata for packaging and deployment

✨ Comparison

FeatureAWS GeneratorAzure GeneratorGCP Generator
Modulegenerator-aws-terraformgenerator-azure-terraformgenerator-gcp-terraform
Handler OutputJava (Lambda + API Gateway)Java (HTTP & Timer Function wrappers)Java (HttpFunction)
Terraform OutputFull (Lambda, API Gateway, IAM, etc.)Shared infra onlyFull (Function, Scheduler, IAM, etc.)
Runtime AdapterAwsLambdaRequestHandlerAzureBaseFunctionWrapperGcpCloudFunctionRequestHandler
Java Templateshandler.ftl, apiIntegrationClass.ftlhandler.ftl, function.ftl, schedule.ftlhandler.ftl
Terraform Templatesfunction.ftl, api.ftl, integration.ftl, schedule.ftl, shared.ftlshared.ftl onlyfunction.ftl, api.ftl, apiIntegration.ftl, schedule.ftl, shared.ftl
Generator IDaws-terraformazure-terraformgcp-terraform
Primary Use CaseAPI endpoints via Lambda + GatewayHTTP-triggered and scheduled FunctionsCloud Functions + optional Gateway

🛠️ Maven Configuration (Common Structure)

To activate a generator, you need:

  1. A generator dependency
  2. Annotation processing (ServerlessFunctionProcessor)
  3. Build properties set via compilerArgs

AWS Example

<arg>-Acloudprovider=aws</arg>
<arg>-AgeneratorId=aws-terraform</arg>

Azure Example

<arg>-Acloudprovider=azure</arg>
<arg>-AgeneratorId=azure-terraform</arg>

GCP Example

<arg>-Acloudprovider=gcp</arg>
<arg>-AgeneratorId=gcp-terraform</arg>

Generator ModuleRuntime Adapter Module
generator-aws-terraformprovider-aws
generator-azure-terraformprovider-azure
generator-gcp-terraformprovider-gcp

📚 See Also