public static LambdaConfiguration createLambdaConfiguration()

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;
    }