in plugin/deployment-configuration-maven-plugin/src/main/java/com/syndicate/deployment/goal/TerraformMetaGeneratorGoal.java [99:138]
private Map<String, TerraformLambdaConfiguration> convertLambdaSyndicateToTerraformConfiguration(
Map<String, LambdaConfiguration> syndicateConfiguration, String accountId, String region) {
Map<String, TerraformLambdaConfiguration> lambdaResourcesMap = new HashMap<>(
syndicateConfiguration.size() + 1); // lambda resources + provider
for (Map.Entry<String, LambdaConfiguration> entry : syndicateConfiguration.entrySet()) {
// Building TerraformLambdaConfiguration
LambdaConfiguration syndicate = entry.getValue();
String lambdaName = entry.getKey();
TerraformLambdaConfiguration.Builder configurationBuilder = TerraformLambdaConfiguration.builder()
.withDeploymentPackageName(syndicate.getPath() + "/target/" + syndicate.getPackageName())
.withFunctionName(lambdaName)
.withHandler(syndicate.getFunction())
.withRole(buildIamRoleArn(syndicate.getRole(), this.accountId))
.withMemorySize(syndicate.getMemory())
.withTimeout(syndicate.getTimeout())
.withRuntime(syndicate.getRuntime())
.withPublishNewVersion(syndicate.isPublishVersion());
if (syndicate.getSubnetIds() != null && syndicate.getSubnetIds().length != 0
&& syndicate.getSecurityGroupIds() != null && syndicate.getSecurityGroupIds().length != 0) {
TerraformLambdaVpcConfig config = TerraformLambdaVpcConfig.builder()
.withSubnetIds(syndicate.getSubnetIds())
.withSecurityGroupIds(syndicate.getSecurityGroupIds())
.build();
configurationBuilder.withVpcConfig(config);
}
if (syndicate.getVariables() != null && !syndicate.getVariables().isEmpty()) {
configurationBuilder.withEnvironmentVariables(syndicate.getVariables());
}
if (syndicate.getTags() != null && !syndicate.getTags().isEmpty()) {
configurationBuilder.withTags(syndicate.getTags());
}
if (syndicate.getDlResourceName() != null && syndicate.getDlResourceType() != null) {
configurationBuilder.withDeadLetterConfig(buildDeadLetterSourceArn(syndicate.getDlResourceName(),
syndicate.getDlResourceType(), accountId, region));
}
lambdaResourcesMap.put(lambdaName, configurationBuilder.build());
}
return lambdaResourcesMap;
}