in plugin/deployment-configuration-maven-plugin/src/main/java/com/syndicate/deployment/factories/LambdaConfigurationFactory.java [46:110]
public static LambdaConfiguration createLambdaConfiguration(String version, Class<?> lambdaClass,
LambdaHandler lambdaHandler, Set<DependencyItem> dependencies,
Set<EventSourceItem> events, Map<String, Object> variables,
Map<String, String> tags, String packageName, String lambdaPath) {
StringBuilder function = new StringBuilder(lambdaClass.getName());
String methodName = lambdaHandler.methodName();
if (!methodName.isEmpty()) {
function.append(SEPARATOR).append(methodName);
}
LambdaConfiguration lambdaConfiguration = new LambdaConfiguration.Builder()
.withPath(lambdaPath).withName(lambdaHandler.lambdaName())
.withVersion(version).withRole(lambdaHandler.roleName()).withFunction(function.toString())
.withRegionScope(lambdaHandler.regionScope()).withPackageName(packageName)
.withMemory(lambdaHandler.memory()).withTimeout(lambdaHandler.timeout())
.withRuntime(lambdaHandler.runtime()).withResourceType(ResourceType.LAMBDA)
.withArchitectures(new Architecture[]{lambdaHandler.architecture()})
.withLogsExpirations(lambdaHandler.logsExpiration().getValue())
.withDependencies(dependencies).withEventSources(events)
.withVariables(variables).withTags(tags).withSubnetIds(lambdaHandler.subnetsIds())
.withSecurityGroupIds(lambdaHandler.securityGroupIds())
.withPublishVersion(lambdaHandler.isPublishVersion())
.withSnapStart(lambdaHandler.snapStart())
.withResourceGroup(lambdaHandler.resourceGroup())
.build();
if (lambdaHandler.tracingMode() != TracingMode.NoTracing) {
lambdaConfiguration.setTracingMode(lambdaHandler.tracingMode().getMode());
}
String aliasName = lambdaHandler.aliasName();
if (!aliasName.equals("")) {
lambdaConfiguration.setAlias(aliasName);
}
String[] layers = lambdaHandler.layers();
if (layers.length > 0) {
lambdaConfiguration.setLayers(layers);
}
LambdaConcurrency lambdaConcurrency = lambdaClass.getDeclaredAnnotation(LambdaConcurrency.class);
if (lambdaConcurrency != null) {
lambdaConfiguration.setConcurrentExecutions(lambdaConcurrency.executions());
}
LambdaProvisionedConcurrency provisionedConcurrencyAnnotation = lambdaClass.getDeclaredAnnotation(LambdaProvisionedConcurrency.class);
if (provisionedConcurrencyAnnotation != null) {
ProvisionedConcurrency provisionedConcurrency = new ProvisionedConcurrency(
provisionedConcurrencyAnnotation.type(),
provisionedConcurrencyAnnotation.value());
lambdaConfiguration.setProvisionedConcurrency(provisionedConcurrency);
}
DeadLetterConfiguration deadLetterConfiguration = lambdaClass.getDeclaredAnnotation(DeadLetterConfiguration.class);
if (deadLetterConfiguration != null) {
lambdaConfiguration.setDlResourceName(deadLetterConfiguration.resourceName());
lambdaConfiguration.setDlResourceType(deadLetterConfiguration.resourceType().getServiceName());
}
LambdaUrlConfig lambdaUrlConfig = lambdaClass.getDeclaredAnnotation(LambdaUrlConfig.class);
if (lambdaUrlConfig != null) {
lambdaConfiguration.setUrlConfig(new UrlConfig(lambdaUrlConfig.authType(), lambdaUrlConfig.invokeMode()));
}
return lambdaConfiguration;
}