in source/patterns/@aws-solutions-constructs/core/lib/glue-job-defaults.ts [17:38]
export function DefaultGlueJobProps(jobRole: IRole, userProvidedGlueJobProps: CfnJobProps,
glueSecurityConfigName: string, defaultArguments: {}): CfnJobProps {
const glueVersion: string | undefined = userProvidedGlueJobProps.glueVersion;
// setting default to 2 to reduce cost
const maxCapacity = glueVersion === "1.0" && !(userProvidedGlueJobProps.workerType
|| userProvidedGlueJobProps.numberOfWorkers) ? 2 : undefined;
const defaultGlueJobProps: CfnJobProps = {
command: userProvidedGlueJobProps.command!,
role: jobRole.roleArn,
securityConfiguration: glueSecurityConfigName,
defaultArguments,
maxCapacity,
numberOfWorkers: (!glueVersion || glueVersion === "2.0") ? 2 : undefined, // defaulting to 2 workers,
workerType: (!glueVersion || glueVersion === "2.0") ? 'G.1X' : undefined, // defaulting to G.1X as it is preferred with glue version 2.0
// glue version though optional is required for streaming etl jobs otherwise it throws an error that 'command not found'
glueVersion: glueVersion ? glueVersion : '2.0'
};
return defaultGlueJobProps;
}